成为SQL服务器性能专家 不可错过的教程

译文
运维 服务器运维
有没有可能在短短几秒内回答这个问题?也许你试图查看性能监视器PerfMon里面的性能计数器。里面有大约1000个名称各异的不同计数器。你可能会问:“Skipped Ghosted Records/sec”(每秒跳过的幻影记录数)= 10,这个数值好还是坏?正确的回答是,这个数值可能并不重要。不过,有些计数器确实很重要。本文将帮助你找出这类计数器,还会教你如何为最常见的性能问题排除故障。

有没有可能在短短几秒内回答这个问题?也许你试图查看性能监视器PerfMon里面的性能计数器。里面有大约1000个名称各异的不同计数器。你可能会问:“Skipped Ghosted Records/sec”(每秒跳过的幻影记录数)= 10,这个数值好还是坏?正确的回答是,这个数值可能并不重要。不过,有些计数器确实很重要。本文将帮助你找出这类计数器,还会教你如何为最常见的性能问题排除故障。

想开始入手,先从下列网址安装SQL Heartbeat工具:
http://www.sqlsolutions.com/downloads/activity-monitor/Download.html
连接到你的服务器后,你会看到服务器树结构中的两个类别:

点击“Online Activity/SQL Heartbeat”节点,你会立即看到五个不同的图表。但是最好点击“Historical Data”(历史数据),等待一两天,等到累积了更准确的衡量指标为止。之后,你该查看图表上的哪些内容呢?首先,你应该关注一下Waits图表:

顺便说一下,你有没有注意到这张图上的周期性模式?比如说,周末期间活动比较少,到了晚上活动增加。为了更全面地了解数据库在正常工作时间段的运行状况,你在分析时可以将这些时段排除在外(特别是由于这些时段可能是进行完全备份的时候)。我们可以排除这类数据,让我们的图表更流畅:

下一步是查看哪个类别最糟糕。如果主色是蓝色或黄色(代表读取或写入),那么你的服务器是磁盘输入/输出密集型的。下面是个示例:

为什么是输入/输出密集型的?点击Physical R/W图表。问题可能出在工作负载上,比如说输入/输出操作次数太多: 

非常频繁的输入/输出活动可能是糟糕的高速缓存命中率引起的。你可以点击Cache Hits(高速缓存命中)按钮来证实:

注意:不要使用性能监视器PerfMon所报告的“Cache Hits Ratio”(高速缓存命中率)。PerfMon报告的只是“医院里的平均温度”而已——它是对周末和繁忙时段、夜间索引碎片整理和白天操作求平均值,用的是不同的使用模式。

有时候,“高速缓存命中率”足够好,但是延迟很差。点击Seek Time(寻道时间)按钮来证实:

 

  

50毫秒(ms)意味着,服务器每秒只能执行20次输入/输出操作。这样的速度仅仅相当于老式软盘!
有些服务器是处理器密集型的,下面是一台典型的处理器密集型服务器的模样:

一般来说,如果服务器是处理器密集型的,情况并不坏,只要绝对数值不是很高(千万要牢记:Y轴表示服务器每秒使用所有处理器时的处理器毫秒,所以在4个处理器上,每秒使用处理器最多可以有4000毫秒。)但是如果处理使用率的绝对值很高,那么点击Query Stats(查询统计数字)按钮。你会看到按处理器、读取和写入分类的前十大有问题的查询。这些查询很可能是需要优化的对象。

顺便说一下,你每天可以通过电子邮件来获得所有这些报告。只要在SQL Heartbeat中进行配置:点击工具栏中的Reports(报告)按钮。

#p# 现在,其实只剩下了一个次要的方面。你有没有看到上面的红色尖峰?这些是锁。各种各样的锁都很危险。每天一小时的处理器使用时间没什么问题,但是1分钟的锁定时间会导致超时、客户不高兴。死锁更为严重。

为了给锁和死锁排除故障,请从下列网址安装SQL Deadlock Detector
http://www.sqlsolutions.com/downloads/sql-deadlock-detector/Download.html
连接到同一台服务器,在数据收集了几小时后查看事件列表。

有时候,锁包括几十个进程。从SQL Deadlock Detector里面,你能获得关于参与锁的进程的所有细节:

提供的信息包括锁定表的名称、具体的T-SQL语句以及父存储过程。

小结
你可以迅速确定自己的SQL服务器其运行状况是否良好。实际上,说到处理最常见的性能问题,你只要遵照上述步骤,就能够成为SQL服务器性能方面的专家。

原文链接:http://www.sqlsolutions.com/articles/articles/Become_SQL_performance_Expert_in_few_simple_steps.htm

责任编辑:张玉 来源: 51CTO
相关推荐

2011-05-20 09:41:50

Web服务器开源

2011-09-15 13:24:15

SQL Server性能监视

2020-10-30 15:34:03

系统管理员服务器监控工具运维

2010-07-15 16:21:03

不可思议的服务器

2015-04-21 14:11:54

HCIE华为

2010-07-15 17:36:34

2019-05-17 09:25:14

肉鸡服务器攻击

2010-05-19 18:46:59

SVN服务器配置

2010-05-19 17:36:14

ApacheSVN服务

2018-04-23 12:28:24

无服务器云成本云计算

2021-10-27 08:00:00

DevSecOps开发安全

2011-03-30 10:52:07

SQL Server数服务器

2019-07-23 09:00:00

vuejavascript前端

2022-05-05 09:27:31

Linux服务器优化

2009-09-02 14:23:19

邮件服务器性

2022-09-26 09:19:38

服务器优化

2010-05-19 10:31:07

IIS服务器

2010-03-24 19:21:55

Nginx服务器

2018-06-13 10:27:04

服务器性能优化

2021-11-26 13:43:01

服务器虚拟化数据中心
点赞
收藏

51CTO技术栈公众号