无法在Windows性能监视器中找到Connection Pooling计数器怎么办?
如何在Windows性能监视器中调出ADO.NET连接池计数器?
首先要明确:你要找的不是名为「Connection Pooling」的直接选项,而是**「.NET Data Provider for SqlServer」**分类下的相关计数器,比如「Number of Pooled Connections」「Number of Active Connections」等,这些才是对应ADO.NET SQL Server连接池的统计指标。
针对不同的.NET运行环境,解决方法如下:
如果你用的是.NET Framework项目
- 打开性能监视器,点击「添加计数器」,在「可用计数器」列表里找到「.NET Data Provider for SqlServer」,展开后就能看到所有连接池相关的计数器。
- 如果找不到这个分类,大概率是性能计数器未注册,需要重新注册:
- 以管理员身份打开命令提示符
- 切换到对应.NET Framework版本的目录,比如:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 - 执行命令:
installutil.exe System.Data.dll完成计数器注册
- 添加计数器时,务必选择你的控制台程序对应的进程(不要选defaultdomain或sqlceip),这样才能看到目标进程的连接池数据。
如果你用的是.NET Core/.NET 5+项目
.NET Core及后续版本不再依赖传统的Windows性能计数器机制,更推荐使用dotnet-counters工具来监控连接池:
- 安装工具:打开命令提示符执行
dotnet tool install --global dotnet-counters - 运行你的控制台程序,找到它的进程ID(可以通过任务管理器查看)
- 执行命令:
dotnet-counters monitor --process-id <你的进程ID> Microsoft.Data.SqlClient,就能看到包括连接池在内的各项指标
另外给你的测试代码提个小建议:当前代码是关闭连接池的测试场景,你可以复制一份代码去掉poolingOffString,对比开启连接池时的执行时间,更能体现连接池的性能优势。
内容的提问来源于stack exchange,提问作者Haidar
相关产品推荐
相关产品推荐

