社区编辑申请
注册/登录
成为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
相关推荐

2022-05-19 14:36:54

SQL Server服务器暴力攻击

2011-03-30 10:52:07

SQL Server数服务器

2010-06-17 10:23:38

SQL Server服

2010-10-22 14:50:27

SQL server服

2011-08-09 09:03:15

SQL Server数服务器组件

2018-08-21 09:03:00

SQLServer服务器

2009-04-16 17:24:54

性能优化SQL Server 数据收集

2010-11-08 14:59:44

SQL Server无

2010-07-07 14:53:04

SQL Server数

2011-02-22 13:46:27

2010-01-08 09:43:23

SQL Server分Analysis Se

2009-04-16 15:34:35

SQL Server

2017-06-07 15:37:51

MySQLSQL性能优化

2020-12-03 08:00:00

SQL数据库MySQL

2010-07-16 11:30:06

SQL Server

2010-06-30 10:23:27

SQL Server数

2009-04-16 17:44:46

2011-08-10 10:52:22

SQL Server 性能计数器

2017-06-16 21:16:14

2010-07-14 13:56:10

SQL Server

编辑推荐

运维工作到底是做什么的?给1到10年运维人的修仙指南Windows下的几种提权方式的粗略汇总推荐 | 10款优秀的SQL Server服务器监控工具9款优秀网络,服务器和应用程序监控工具
我收藏的内容
点赞
收藏

AISummit人工智能大会