Asp.net
您如何衡量打開的數據庫連接數
我正在嘗試確定我是否有數據庫連接洩漏。所以我需要查看打開的連接數。我有一些簡單的測試程式碼會造成洩漏:
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(); } }請注意,沒有 .Close 並且在快速連續執行 3 次後確實會崩潰。
為了測量洩漏,我正在執行性能監視器並測量 SQLServer:一般統計資訊/使用者連接:
(來源:yart.com.au)
但是,當我執行我的程式碼時,這些似乎為零:
(來源:yart.com.au)
我應該改變什麼才能真正看到連接?
回答
我已經批准了下面的答案。儘管它不使用性能工具,但對我來說已經足夠了。底線是我想看看打開網頁後有多少連接保持打開狀態,這成功了。
您可以嘗試像這樣對主數據庫執行查詢:
SELECT SPID, STATUS, PROGRAM_NAME, LOGINAME=RTRIM(LOGINAME), HOSTNAME, CMD FROM MASTER.DBO.SYSPROCESSES WHERE DB_NAME(DBID) = 'TEST' AND DBID != 0有關更多詳細資訊,請參閱此連結。
您是否嘗試過執行
sp_who儲存過程?如果有過時的打開連接,它們應該出現在那裡。要僅顯示
sa使用者程序執行:EXEC sp_who 'sa'

