簡體   English   中英

SQL Server連接計數問題

[英]SQL Server connection count issue

我正在使用SQL Server 2008 Enterprise + .Net 3.5 + C#+ ADO.Net。 我正在使用以下SQL語句監視連接號,是否正確? 如果是,我的困惑是,在下面的語句中,來自ADO.Net客戶端的一個連接映射為僅一個連接? 還是一個ADO.Net連接可以在這里映射到多個連接?

SELECT  *  FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:General Statistics'

(“監視用戶連接”行)

預先感謝喬治

使用SELECT * FROM sys.dm_exec_connections查找所有連接。 client_net_address具有客戶端地址,因此您可以跟蹤連接的來源。

使用SELECT * FROM sys.dm_exec_sessions查找所有會話(除非使用MARS ,否則會話通常與連接建立1到1映射)。 program_name列將包含您在連接字符串中傳入的應用程序名稱的值,並允許您標識自己的連接。

使用SELECT * FROM sys.dm_exec_requests查看所有當前正在執行的批處理(請求)。

性能計數器只會給您一個值,即當前連接數:

SELECT  cntr_value
FROM sys.dm_os_performance_counters 
WHERE object_name = 'SQLServer:General Statistics'
  and counter_name = 'User Connections'

可以滿足您的需求嗎? 如果您要計算連接數,我會感到困惑。 您的問題似乎說不,您的評論對我意味着是。

Sp_who2 'Active'

默認情況下,基礎SQL Server驅動程序代碼使用連接池。 您會發現,應用程序“擁有”的物理連接數將隨着時間增長到當前限制,但這與“正在使用”的數不同。

這樣可以避免重新協商每個鏈接上的安全性等,從而加快了應用程序對數據庫的訪問。

如@sgmarshall所述,使用sp_who2存儲過程來確定每個連接當前正在做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM