通过 WMI 监控 SQL Server 上每秒的批处理请求
Posted
技术标签:
【中文标题】通过 WMI 监控 SQL Server 上每秒的批处理请求【英文标题】:Monitoring batch requests per second on SQL Server through WMI 【发布时间】:2010-09-29 11:58:07 【问题描述】:我需要通过 WMI 以编程方式(.NET 3.5、C#)监控 SQL Server 2008 机器。我想测量服务器每秒接收的批处理请求数;这就是 Windows 7 性能监视器工具将在 SQL Server:SQL Statistics
类别 Batch Requests/sec
计数器下向您显示的内容。如果我使用这个工具监控服务器,当服务器空闲时,我观察到基线为零,当我从我的应用程序中进行一些查询时,基线上升到 100 或 200。
现在,当我尝试使用 .NET 中的 WMI 类来获取相同的数据时,我只读取零,无论我使用多少查询访问服务器。根据我在 MSDN 上阅读的内容,一些性能计数器不应该立即检索,但建议使用采样过程。我找不到有关哪些计数器属于此类别的任何信息,即我应该使用采样来测量每秒的批处理请求吗?另外,什么样的采样?我想 Windows 性能监视器工具正在幕后进行一些计算以显示它显示的图表;我想获得类似的结果。有没有人经历过类似的经历并成功解决?谢谢。
【问题讨论】:
【参考方案1】:是的,这很准确。由您的代码执行与 Perfmon 相同的操作:每秒查询一次性能计数器以获得有意义的值。您将需要一个计时器或(呃)调用 Sleep()。顺便说一句,使用 PerformanceCounter 类是更好的方法,WMI 并不便宜。这也使您可以访问 PerformanceCounter 属性,该属性告诉您它是哪种计数器。没关系,反正你知道你需要计时器。
【讨论】:
以上是关于通过 WMI 监控 SQL Server 上每秒的批处理请求的主要内容,如果未能解决你的问题,请参考以下文章