由索引碎片引发的一次线上事故


摘要:
今天上午收到,系统某一个模块无法使用,观察系统的后台监控发现,有一个存储过程运行一直是失败,
当我把存储过程下载下来之后,仔细阅读存储过程中的所有代码,发现每一行代码都没有问题,每个查询条件对应的列都建立了相应的索引,重启数据库服务器后,查询分析器中运行存储过程,一直处于运行,下文将排查方法记录如下:

1.检查所有列是否存在对应的索引

2.检查所有索引的碎片情况,发现索引碎片都高大百分之90,在索引碎片这么高的情况,索引基本处于失效状态。

3.将此表上所有索引进行重建,存储过程查询立即变的高效,由以前的超时变成不到一秒就完成运行。


相关阅读:
索引碎片的查看方法分享