使用性能监视工具(PerfMon)诊断性能问题
当你的数据库遇到性能问题时,大多数时候使用SQL事件探查器就能够诊断和找出引起性能问题的背后原因了,但有时SQL事件探查器并不是功能较多的。
例如,在生产库上使用SQL事件探查器分析查询执行时间时,对应的TSQL执行很慢(假设需要10秒),但同样的TSQL在测试服务器上执行时间却只要200毫秒,通过分析执行计划和数据列,发现它们都没有太大的差异,因此在生产库上肯定有其它问题,那该如何揪出这些问题呢?
此时性能监视工具(著名的PerfMon)可以帮你一把,它可以定期收集硬件和软件相关的统计数据,还有它是内置于Windows操作系统的一个免费的工具。
当你向SQL Server数据库发送一条TSQL语句,会产生许多相关的执行参与者,包括TSQL执行引擎,服务器缓存,SQL优化器,输出队列,CPU,磁盘I/O等,只要这些参与者任何一环执行节奏没有跟上,最终的查询执行时间就会变长,使用性能监视工具可以对这些参与者进行观察,以找出根本原因。
使用性能监视工具可以创建多个不同的性能计数器,通过图形界面分析计数器日志,此外还可以将性能计数器日志和SQL事件探查器跟踪信息结合起来分析。
性能监视器基本用法介绍
Windows内置了许多性能监视计数器,安装SQL Server时会添加一个SQL Server性能计数器,下面是创建一个性能计数器日志的过程。
1)在SQL事件探查器中启动性能监视工具(“工具”*“性能监视器”);

图 15 启动性能监视工具
2)点击“计数器日志”*“新建日志设置”创建一个新的性能计数器日志

图 16 创建一个性能计数器日志
指定日志文件名,点击“确定”。

图 17 为性能计数器日志指定名字
3)点击“添加计数器”按钮,选择一个需要的计数器

图 18 为性能计数器日志指定计数器
4)从列表中选择要监视的对象和对应的计数器,点击“关闭”

图 19 指定对象和对应的计数器
5)选择的计数器应显示在窗体中

图 20 指定计数器
6)点击“日志文件”标签,再点击“配置”按钮,指定日志文件保存位置,如果需要现在还可以修改日志文件名

图 21 指定性能计数器日志文件保存位置
7)点击“调度”标签,指定一个时间读取计数器性能,写入日志文件,也可以选择“手动”启动和停止计数器日志。

图 22 指定性能计数器日志运行时间
8)点击“常规”标签,指定收集计数器数据的间隔时间

图 23 设置计数器间隔采样时间
9)点击“确定”,选择刚刚创建的计数器日志,点击右键启动它。

图 24 启动性能计数器日志
10)为了查看日志数据,再次打开性能监视工具,点击查看日志图标(红色),在“源”标签上选中“日志文件”单选按钮,点击“添加”按钮添加一个日志文件。

图 25 查看性能计数器日志
11)默认情况下,在日志输出中只有三个计数器被选中,点击“数据”标签可以追加其它计数器。

图 26 查看日志数据时追加计数器
12)点击“确定”,返回图形化的性能计数器日志输出界面

图 27 查看性能计数器日志