我的PHP/MS Sql Server 2005/win 2003应用程序偶尔变得非常反应迟钝,内存/ CPU使用率不会出现高峰.如果我尝试从sql management studio打开任何新连接,那么它只是挂在打开的连接对话框中.如何确定ms sql server 2005的活动连接总数
这显示了每个DB的连接数:
SELECT DB_NAME(dbid) as DBName, COUNT(dbid) as NumberOfConnections, loginame as LoginName FROM sys.sysprocesses WHERE dbid > 0 GROUP BY dbid, loginame
这给出了总数:
SELECT COUNT(dbid) as TotalConnections FROM sys.sysprocesses WHERE dbid > 0
如果您需要更多详细信息,请运行:
sp_who2 'Active'
注意:使用的SQL Server帐户需要'sysadmin'角色(否则它只显示一行,计数为1)
正如@jwalkerjr所提到的,你应该在代码中处理连接(如果启用了连接池,它们只会返回到连接池).规定的方法是使用' using
'声明:
// Execute stored proc to read data from repository
using (SqlConnection conn = new SqlConnection(this.connectionString))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "LoadFromRepository";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", fileID);
conn.Open();
using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if (rdr.Read())
{
filename = SaveToFileSystem(rdr, folderfilepath);
}
}
}
}