接触索引还不是很深入,记录一下:
因维护PDM有一段时间,PDM的使用包括建表、建索引,建约束,导出数据,这些都是基础;
最近又要开始接触并熟练清楚重建索引的好处。
查看表设计虽然建立了一些非聚集索引,但是重复性很大,效率不高;
通过DBCC SHOWCONTIG /* 判断是否需要重建索引
DBCC SHOWCONTIG 正在扫描 table1 表...
已执行 TABLE 级别的扫描。
- 扫描页数................................: 20563
- 扫描区数..............................: 2994
- 区切换次数..............................: 7394
- 每个区的平均页数........................: 6.9
- 扫描密度 [最佳计数:实际计数].......: 34.77% [2571:7395]
- 逻辑扫描碎片 ..................: 36.29% 无序页的百分比。该百分比应该在0%到10%之间,高了则说明有外部碎片。
- 区扫描碎片 ..................: 91.02% 无序扩展盘区在扫描索引叶级页中所占的百分比。该百分比应该是0%,高了则说明有外部碎片。
- 每页的平均可用字节数........................: 375.3
- 平均页密度(满).....................: 95.36% 每页上的平均可用字节数的百分比的相反数。低的百分比说明有内部碎片。
*/
此执行结果提示明显:重建索引上场,下面摘了一段例子来说明DBCC SHOWCONTIG的使用方法。
use database_name
declare @table_id int
set @table_id=object_id(table_id)
dbcc showcontig(@table_id)
重建指定数据库中表的一个或多个索引:dbcc redbindex(@table_id)