SQL SERVER性能调优之二(是否存在硬件瓶颈)

SQL SERVER性能调优之二(是否存在硬件瓶颈)

(一)是否存在一个服务器性能基线?

      (1)、有了基线才有一个衡量的指标,否则一切计数器都是没有意思。否则可能我的系统本来就很慢,例如现在公司就有一个OLAP系统,每天就花了三个小时产生一个报表。也不是问题。

      (2)、有了基线才能确认我的服务器确实存在调整的必要了,例如今天发布新的代码后,性能明显偏离基线了,说明我的程序或者T-SQL代码可能却在缺陷。

(二)如何建立一个基线。

     (1)、使用system perfmon收集性能计数器信息。

     (2)、使用sys.dm_os_performance_counters DMV,可惜该DMV不包含一些OS级别的性能计数器。

     (3)、根据前两步的信息确定一个合理的基线。

(三)几个重要计数器。

(1)、Memory:Pages/sec

      这个计数器表示了每秒钟内存和磁盘之间交换的页面数,如果该值很高的话,可能预示你的服务器可能存在内存压力。可以考虑让SQL动态的分配内存,不要设置SQL最大使用内存,如果该服务器还运行其他消耗内存的程序可以考虑移除,或者增加很多的内存。一般该值推荐在0~20。

(2)、SQLServer:Buffer Manager:Buffer cache hit ratio

     这个计数器表示SQLServer从缓存中而不是磁盘中获得数据的概率,即缓存命中率。在一个OLTP程序中为了较好响应时间,该计数器值应该大于99%。否则也可能预示你的服务器可能存在内存压力,解决办法同上。

(3)、PhysicalDisk :Avg. Disk Queue Length

    这个计数器表示磁盘队列长度,该值应该低于2,如果该计数器值很高,可能预示你的服务器存在IO的压力,应该增加IO子系统性能,配置更好的RAID,或者是更好的存储。

(4)System:Processor Queue Length

这个计数器表示CPU列长度,该值应该低于2,如果该计数器值很高,可能预示你的服务器存在CPU的压力,应该增加更多或者更强的CPU。或者减少服务器的负载。

(5)Processor:% Processor Time

           这个计数器表示CPU的使用率,该值最好低于30%,不能高于80%,如果该值达到99%,可能服务器就已经僵死了,应该产生一个警报通知DBA介入。解决该问题可以Processor Queue Length解决方法一样。

 

posted on 2012-04-29 14:15  小材小用  阅读(1702)  评论(0编辑  收藏  举报

导航