数据库CPU问题排查总结
前言: 至今为止应该说是处理过无数次关于数据库CPU高的问题,但总是想找个合适的机会写一下总结,如今总算有点闲暇时间写一下了。
现象: 数据库CPU高,IO不高,业务层没有任何超时语句
目标:
1: 找到DURATION耗时长的语句
2: 利用“伯海专用跟踪模板”,抓取那些带有死锁的语句
3: 找到使用最频繁的SQL语句群
4: 通过性能计数器结合 sqlserver profiler 看书波动图
5: 查看表索引碎片
6: 计算列索引的重要性
方法:
1: 导监控数据到表排序查找 :SELECT TOP 100 * FROM LOG ORDER BY DURATION DESC
2: 模板已上传至个人存储空间(注意勾选: lock:deadlock),然后再抓回来的数据里面查找:eventclass like dead 数据集
3: GOURPBY查出高密度语句群: SELECT SUBSTRING(TextData,0,100),COUNT(1) FROM [pandalog_2013111102] group by SUBSTRING(TextData,0,100) order by COUNT(1) desc
4: 这个后面另开一篇文章写
5: 定期做索引重建
6: 添加计算列索引
浙公网安备 33010602011771号