SQLSERVER性能监控级别步骤
下面先用一幅图描述一下有哪些步骤和顺序
1、识别瓶颈
识别瓶颈的原因包括多个方面,例如,资源不足,需要添加或升级硬件;
工作负荷在同类资源之间分布不均匀,例如,一个磁盘被独占;资源发生故障;资源配置不正确等
可能存在瓶颈以及对系统的影响
可能的瓶颈方面 | 对服务器的影响 |
内存使用 | 分配内存不足或SQLSERVER使用内存不足导致性能下降 |
CPU使用率 | 长期的高CPU使用率可能表明TSQL查询需要优化或CPU需要升级 |
磁盘输入/输出I/O | 可以优化TSQL查询以减少不必要的I/O(例如:使用索引) |
用户连接 | 可能有太多用户同时访问服务器,从而导致性能下降 |
阻塞锁 | 应用程序设计不合理阻塞妨碍并发,带来更长的响应时间 |
2、监控级别
SQLSERVER提供了多种性能监控工具,可以使用他们来仔细检查性能的不同方面,以不同的细致程度帮助用户确定故障区域,
逐级逐步找到影响性能的最大因素
(1)系统级监控 --应当首先查看系统级信息,确认系统资源(硬件)、网络体系结构对性能的影响,可以使用Windows应用程序日志,
Windows系统监视器进行监控
(2)数据库级监控 --在进行系统监控后,还需要监控数据库活动。使用SSMS中的活动监视器、SQLSERVER事件探查器和系统存储过程监控锁、
用户连接数目
(3)客户端应用程序监控 --最后,仔细检查和评估特定的查询的性能。使用SQL profiler 和系统视图检查对索引的使用情况、
查询所需CPU时间和磁盘I/O操作
3、建立性能基线
当确定了性能监控中所涉及的资源、负载和目标后,开始进行监控,并建立性能基线与当前服务器性能进行比较。
性能基线是一个保证系统正常操作性能范围值,达到或超过这个范围,系统性能可能会显著下降。
应该对接近或超过性能基线的数字做进一步调查找出原因监控的周期是一段时间,而不是一两天。
其中应该包括数据库活动的峰值时间和非峰值时间,数据查询和批处理命令的响应时间、数据库备份和还原所需时间
建立服务器性能基线后,将基线统计与当前服务器性能进行比较。对高于或远低于基线的数字需要做进一步调查。
他们可能表明有需要调整或重新配置的区域。例如,执行一组查询的时间增加,检查这些查询以确定能否重新编写他们,
或者是否添加统计信息或索引
4、确认用户活动
监视用户活动有助于确定趋势,例如,用户运行的事务类型,运行的低效即席查询的数量和占用资源最多的事务类型。
若要收集有关用户的统计信息,请使用SQLSERVER PROFILER 或系统监视器SSMS活动监视器用于对SQLSERVER进行即席监视,
从而确定用户在系统中的活动
5、隔离性能问题
通常同时使用多个SQLSERVER或Windows工具比一次只用一个工具隔离数据库性能问题更有效。
例如,图形执行计划功能(也称为“显示计划”)可以迅速识别单个查询中的死锁。
然而,如果同时使用SQLSERVER和Windows的监视功能,将更容易识别某些其他性能问题
通过对这些工具的灵活运用进行逐个性能问题的排查,而不是同时开启SQL PROFILER 和Windows性能监视器
通过工具能够监控与应用程序有关的问题包括:
(1)SQLSERVER存储过程或用户提交的TSQL语句
(2)用户活动(如阻塞或死锁)
(3)硬件活动(如磁盘使用)
(4)应用程序开发错误
(5)硬件错误(如磁盘错误,网络错误)
(6)由于数据库设计不正确导致过多阻塞
---------------------------------------------------华丽的分割线-------------------------------------------------------
Windows性能监视器:perfmon.exe
SQLSERVER PROFILER
SSMS
如有不对的地方,欢迎大家拍砖o(∩_∩)o