MSSQL 高耗资源的排查思路

0x00、解决CPU100%的情况,首先需排除病毒和保护软件的干扰情况

0x01、收缩数据库( 日志文件)

0x02、重建索引

0x03、使用perfmon观察disk queue,看是否一直高于1,如果长时间高于1说明磁盘性能有问题,意味着磁盘操作需要排队完成。考虑升级存储设备 

加入“Page Life Expectancy”如果这个值始终小于300秒,则可能需要更大的内存(在Sql Server: Buffer Manager里)

加入“Buffer Cache hit ratio” 如果这个值小于90%,则可能需要更大的内存.(在Sql Server: Buffer Manager里)

0x04、数据库锁检查命令

SP_lock  

SP_Who

sp_who2

0x05 运行profiler,跟踪器

只选Stored procedure 和 T-Sql, 在Filter(过滤) tab, 选duration(时长)大于5000,这告诉跟踪器只捕捉运行时间超过5秒的程序。 你可以根据自己的情况调整这个变量。目的是找到导致问题的SQL.

0x06、运行sp_who2 ,看blk by 栏, 如果这栏有数据, 就是造成阻塞(blocking)的线程id. 然后运行DBCC Inputbuffer(线程id),就可以了解这个线程在干什么。

0x07. 根据官方文档,SqlServer2008R2 x64 的最低内存需求为4GB(保证系统能够安装运行), 建议加大内存以提升SQLServer2008的整体性能。


你可能感兴趣的:(MSSQL,性能优化)