你可能想在連接池念起來:http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx
一個獨立的連接池是爲每個不同的連接字符串創建的。此外,如果您通過集成安全性連接並且您的網站使用基本或Windows身份驗證(而不是匿名),則將爲該網站的每個用戶創建一個單獨的連接池。
要清除連接池,SqlConnection
對象提供了方法ClearPool()
和ClearAllPool()`。但是,單個連接不會關閉並從游泳池中移除,直到它關閉或丟棄。
所有執行IDisposable
的sql查詢所涉及的各種對象都應該包含在using
聲明中以保證正確處理。沿着這些路線的東西:
IEnumerable<BusinessObject> list = new List<BusinessObject>() ;
using (SqlConnection connection = new SqlConnection(credentials))
using (SqlCommand command = connection.CreateCommand())
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
using (DataSet results = new DataSet())
{
command.CommandType = CommandType.StoredProcedure ;
command.CommandText = @"someStoredProcedure" ;
try
{
connection.Open() ;
adapter.Fill(results) ;
connection.Close() ;
list = TransformResults(results) ;
}
catch
{
command.Cancel() ;
throw
}
}
return list ;
您可以檢查什麼的SPID要麼由執行存儲過程sp_who
(必須有在SQL Server在適當的管理員權限)在打開SQL Server。你也可以使用perfmon。
什麼RDBMS連接? AFAIK,這樣做的唯一方法是直接查詢數據庫服務,並且這對每種風格都有很大的不同。 – 2012-08-09 03:07:19
如果您只是在調試,請嘗試'sp_who2' – 2012-08-09 03:20:50
sp_who2提供有關登錄用戶的詳細信息,但是由於其Web應用程序的相同用戶可以在數據庫上打開更多連接。我想要使用我的Web應用程序在數據庫上打開連接的數量,它是asp.net。 – 2012-08-09 03:36:33