Pet*_*ras 9 sql database asp.net connection
我试图确定我是否有数据库连接泄漏.所以我需要查看打开连接的数量.我有一些简单的测试代码会产生泄漏:
protected void Page_Load(object sender, EventArgs e)
{
for(int i = 0; i < 100; i++)
{
SqlConnection sql = new SqlConnection(@"Data Source=.\SQLExpress;UID=sa;PWD=fjg^%kls;Initial Catalog=ABC");
sql.Open();
}
}
Run Code Online (Sandbox Code Playgroud)
注意没有.Close,这在快速连续运行3次后确实会崩溃.
为了测量泄漏,我正在运行性能监视器并测量SQLServer:常规统计/用户连接:
替代文字http://www.yart.com.au/stackoverflow/counter.png
但是,当我运行我的代码时,这些似乎是零:
替代文字http://www.yart.com.au/stackoverflow/counter1.jpg
我应该改变什么以实际看到连接?
回答
我已经批准了以下答案.即使它不使用性能工具,它对我的使用也足够好.底线是我想看看打开网页后仍有多少连接打开,这就行了.
您可以尝试对主数据库运行查询,如下所示:
SELECT SPID,
STATUS,
PROGRAM_NAME,
LOGINAME=RTRIM(LOGINAME),
HOSTNAME,
CMD
FROM MASTER.DBO.SYSPROCESSES
WHERE DB_NAME(DBID) = 'TEST' AND DBID != 0
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此链接.