SQL Server 索引碎片

作者:vkvi 来源:ITPOW(原创) 日期:2024-4-7

SQL Server 索引碎片是什么?

1、索引页没有按索引的逻辑顺序摆放,比如本应按 ABC 摆放,现在摆成了 ACB。

2、索引页中太多的空白区域,留一点空白区域是正常的,以应对插入的索引,但是太多的话,就没必要了。

过高索引碎片有什么危害?

1、降低性能。

2、浪费空间。

怎么查看碎片量?

执行 dbcc showcontigdbcc showcontig(表名)

查看逻辑扫描碎片指标,越低越好。

或者展开表前面的加号,展开“索引”前面的加号,找到对应的索引,右键,属性。

怎么“整理”碎片?

展开表前面的加号,展开“索引”前面的加号,找到对应的索引,右键,点击“重新生成”或“重新组织”。

重新生成:效果最佳,分“联机”和脱机”:联机通常慢一点,但是生成过程中不锁表,不过得企业版才行;脱机通常快一点,它并不是让数据库离线,而是生成过程中锁住表,使表不可访问,实际使用中,测试一个上 GB 的索引,不到一分钟就弄好了。

重新组织:尽管效果不如“重新生成”,但是通常效果也不错,测试 N 个索引,重新组织后,最大的碎片也才 7%。

“整理”之后,可能数据库反而会变大,此时数据库上右键,收缩一下数据库即可。

顺便说一下,要节约空间,那个数据库文件默认按 10% 增长,也可以修改一下。

相关阅读

相关文章