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