SQL Server查询性能优化――覆盖索引(二)(三)
。
4) 应该在那些SELECT查询中常使用到的列上创建覆盖索引,但覆盖索引中包括过多的列也不行,因为覆盖索引列的值是存储在内存中的,这样会消耗过多内存,引发性能下降。
关于索引碎片的修复:
关于上图的一些说明:
avg_fragmentation_in_percent:逻辑碎片(索引中的无序页)的百分比。这是索引的叶级页中出错页所占的百分比。对于出错页,分配给索引的下一个物理页不是由当前叶级页中的“下一页”指针所指向的页。
fragment_count : 索引中的碎片(物理上连续的叶页)数量。
avg_fragment_size_in_pages :索引中一个碎片的平均页数。
知道索引碎片程度后,可以使用下表确定修复碎片的最佳方法。
|
avg_fragmentation_in_percent 值
|
修复语句
|
|
> 5% 且 < = 30%
|
ALTER INDEX REORGANIZE
|
|
> 30%
|
ALTER INDEX REBUILD WITH (ONLINE = ON)
|
|
|
|