国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

獲取SQL Server的當前連接數(shù)

2024-08-31 00:51:05
字體:
來源:轉載
供稿:網(wǎng)友

首先聲明:這個問題我沒有解決

 


當網(wǎng)友問到我這個問題時,我也還以為很簡單,以為SQL Server應該提供了對應的系統(tǒng)變量什么的.但是到目前為止,我還沒有得到一個比較好的解決方案.可能很簡單,,只不過我不知道罷了.希望如此..

下面我說說相關的知識吧.希望大家可以給出一個比較好的方法.

這里有幾個與之相關的概念.

SQL Server提供了一些函數(shù)返回連接值(這里可不是當前連接數(shù)喲!),個人覺得,很容易產(chǎn)生誤解.

系統(tǒng)變量

@@CONNECTIONS 返回自上次啟動 Microsoft® SQL Server™ 以來連接或試圖連接的次數(shù)。

@@MAX_CONNECTIONS 返回 Microsoft® SQL Server™ 上允許的同時用戶連接的最大數(shù)。返回的數(shù)不必為當前配置的數(shù)值。

 

系統(tǒng)存儲過程

SP_WHO

提供關于當前 Microsoft® SQL Server™ 用戶和進程的信息。可以篩選返回的信息,以便只返回那些不是空閑的進程。

列出所有活動的用戶:SP_WHO ‘a(chǎn)ctive’

列出某個特定用戶的信息:SP_WHO ‘sa’

 

系統(tǒng)表

SysPRocesses

 sysprocesses 表中保存關于運行在 Microsoft® SQL Server™ 上的進程的信息。這些進程可以是客戶端進程或系統(tǒng)進程。sysprocesses 只存儲在 master 數(shù)據(jù)庫中。

Sysperfinfo

包括一個 Microsoft® SQL Server™ 表示法的內(nèi)部性能計數(shù)器,可通過 Windows NT 性能監(jiān)視器顯示.

 

有人提議說為了獲取SQL Server的當前連接數(shù):使用如下SQL:

SELECT COUNT(*) AS CONNECTIONS FROM master..sysprocesses


個人認為不對,看看.sysprocesses的login_time列就可看出.

另外一個方面是進程不能和連接相提并論,他們是一對一的關系嗎,也就是說一個進程就是一個連接?一個連接應該有多個進程的,所以連接和進程之間的關系應該是1:n的.


因為sysprocesses列出的進程包含了系統(tǒng)進程和用戶進程,為了得到用戶連接,可以使用如下SQL:

SELECT cntr_value AS User_Connections FROM master..sysperfinfo as p
WHERE p.object_name = 'SQLServer:General Statistics' And p.counter_name = 'User Connections'

個人還是認為不對,因為它是一個計數(shù)器,可能會累加的.

還有一種方案是利用如下SQL:

select connectnum=count(distinct net_address)-1 from master..sysprocesses

理由是net_address是訪問者機器的網(wǎng)卡值,這個總該是唯一的吧.但是看起來得到的是所有時間內(nèi)的連接數(shù).

希望大家可以給出自己的解決方案.這個問題解決了,相信會有很大的用途.


http://confach.cnblogs.com/archive/2006/05/31/414156.html


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌吉市| 伊宁市| 彭阳县| 志丹县| 孙吴县| 康定县| 商洛市| 昆山市| 武乡县| 上高县| 白水县| 台湾省| 韩城市| 德庆县| 东明县| 长泰县| 莱阳市| 延边| 鲁甸县| 子洲县| 台前县| 敦化市| 宁南县| 公主岭市| 普定县| 肇庆市| 南平市| 肥西县| 鄂伦春自治旗| 垫江县| 黔江区| 开阳县| 巫溪县| 孙吴县| 吉隆县| 镇江市| 衡东县| 革吉县| 奇台县| 丹凤县| 湄潭县|