据统计信息来作预估,如执行计算预估的返回行
查看统计信息:DBCC SHOW_STATISTICS (‘bdship‘,‘IX_bdship_2‘)
建立索引后,若想看其好坏,用DBCC SHOW_STATISTICS (‘bdship‘,‘IX_bdship_2‘)查看重复率,越小越好。
统计信息维护:
1,表格从没有数据变成有数据时,如索引重建。
2,小表(500行以下数据),当统计信息第一个字段累计变化大于500以后
3,大表(500行以上),当统计信息第一个字段累计变化大于500+(20%*表格数据总量)时,即在表五分之一以上的数据发生变化时,会自动更新统计信息。
4,手工更新,如下:
手工更新统计信息:
UPDATE STATISTICS mdDept –表
UPDATE STATISTICS mdDept IX_mdDept –表上索引
1,索引要建立在重复少的字段上才有意义,试想若字段全相同,那做索引就没有意义。
索引建立后可通过DBCC SHOW_STATISTICS (‘bdship‘,‘IX_bdship_2‘)来判断,
第一个表的Density
若Density接近于1,说明重复率非常小,索引建立的很好
若Density小于0.1,说明重复很大,建不建立索引影响不大,某些时候会用扫描方式替代索引查找
第三个表:
RANGE_HI_KEY:
每组数据的最大值
RANGE_ROWS:每组数据区间行数,不含最大值。即:(上一行值,当前行值)
EQ_ROWS:等于RANGE_HI_KEY的值的数量
DISTINCT_RANGE_ROWS:每组数据非重复数量
AVG_RANGE_ROWS:重复值的平均数量,不含上限值
=RANGE_ROWS/DISTINCT_RANGE_ROWS
这样,通过给定的一个条件,就能预估大概有多少行数据,有多少M数据。