You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取SQL性能计数器中的活动连接池数量,可用Python或SQL实现吗

NumberOfActive Connection Pools 取值获取方案

Python 捕获方法

可以通过Python获取该性能计数器数值,操作步骤如下:

  • 首先安装依赖库:pip install pywin32
  • 参考代码实现:
import win32pdh
import win32pdhutil

# 定义性能计数器参数
counter_category = ".NET Data Provider for SqlServer"
counter_name = "NumberOfActiveConnectionPools"
# 若要指定对应进程,替换为实际进程名,默认取全局值可填"_Global_"
instance_name = "_Global_"

# 初始化计数器查询
query = win32pdh.OpenQuery()
counter = win32pdh.AddCounter(query, f"\\{counter_category}({instance_name})\\{counter_name}")
win32pdh.CollectQueryData(query)

# 获取数值
_, value = win32pdh.GetFormattedCounterValue(counter, win32pdh.PDH_FMT_LONG)
print(f"活动连接池数量:{value}")

# 清理资源
win32pdh.RemoveCounter(counter)
win32pdh.CloseQuery(query)

注意:该计数器是Windows系统级别的.NET性能计数器,仅支持在部署了对应.NET应用的Windows环境下运行上述代码

SQL 查询实现说明

NumberOfActiveConnectionPools 属于ADO.NET客户端层面的统计项,不存在于SQL Server服务端的内置统计中,没有原生SQL可以直接从SQL Server实例查询该值。如果必须通过SQL语句获取,可借助SQL Server的xp_cmdshell扩展调用Windows系统的性能计数器工具实现,操作前提是你有SQL Server的sysadmin权限,且允许开启xp_cmdshell(生产环境不建议随意开启):

-- 开启xp_cmdshell(执行后建议关闭)
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

-- 执行查询获取活动连接池数量,可根据你使用的.NET数据提供程序调整计数器名称
EXEC xp_cmdshell 'typeperf "\.NET Data Provider for SqlServer(_Global_)\NumberOfActiveConnectionPools" -sc 1';

-- 关闭xp_cmdshell
sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
sp_configure 'show advanced options', 0;
RECONFIGURE;

注意:该SQL仅能在部署了对应.NET应用的同一台服务器的SQL Server实例上执行,才能读到正确的计数器值

内容的提问来源于stack exchange,提问作者Raviteja Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:57:00