SQLServer 重建索引前后对比
在做维护项目的时,我们经常会遇到索引维护的问题,通过语句,我们就可以判断某个表的索引是否需要重建。
执行一下语句:先分析表的索引
分析表的索引建立情况:DBCC showcontig('Table')
DBCC SHOWCONTIG 正在扫描 'Table'' 表... 表: 'Table'' (53575229);索引 ID: 1,数据库 ID: 14 已执行 TABLE 级别的扫描。 - 扫描页数................................: 228 - 扫描区数..............................: 52 - 区切换次数..............................: 225 - 每个区的平均页数........................: 4.4 - 扫描密度 [最佳计数:实际计数].......: 12.83% [29:226] - 逻辑扫描碎片 ..................: 97.37% - 区扫描碎片 ..................: 98.08% - 每页的平均可用字节数........................: 2686.3 - 平均页密度(满).....................: 66.81%
当你发现,扫描密度行,最佳计数和实际计数的比例已经严重失调,逻辑扫描碎片占了非常大的百分比,每页平均可用字节数非常大时,就说明
你的索引需要重新整理一下了。
执行重建索引命令: DBCC DBREINDEX('Table'') 后分析的情况
DBCC SHOWCONTIG 正在扫描 'Table'' 表... 表: 'Table'' (53575229);索引 ID: 1,数据库 ID: 14 已执行 TABLE 级别的扫描。 - 扫描页数................................: 154 - 扫描区数..............................: 20 - 区切换次数..............................: 19 - 每个区的平均页数........................: 7.7 - 扫描密度 [最佳计数:实际计数].......: 100.00% [20:20] - 逻辑扫描碎片 ..................: 0.00% - 区扫描碎片 ..................: 55.00% - 每页的平均可用字节数........................: 86.8 - 平均页密度(满).....................: 98.93%