【INDEX】重建索引的两条参考依据

简介: 如果是OLTP系统,存在正大量的删除和更新操作的系统中,日积月累,索引将会千疮百孔,使用索引用来检索数据的效率会急转直下。因此要求我们定期的对索引进行维护,我们可以使用DROP/CREATE方式或REBUILD方式完成索引的重建,恢复索引应该有的效率。问题来了,什么时候需要重建?重建索引的依据是什么呢?有两个依据可供参考。第一个是,查看索引的“高度”,如果索引树高超过了4我们就需要重点关注;另外一个参考依据是,索引条目被删除的数据占总索引条目的百分比如果超过了20%,一般在这种情况下就要考虑重建索引。如果获得这两个参考依据?方法其实很简单,我们仅需对索引进行一下分析,然后通过IND

如果是OLTP系统,存在正大量的删除和更新操作的系统中,日积月累,索引将会千疮百孔,使用索引用来检索数据的效率会急转直下。因此要求我们定期的对索引进行维护,我们可以使用DROP/CREATE方式或REBUILD方式完成索引的重建,恢复索引应该有的效率。

问题来了,什么时候需要重建?重建索引的依据是什么呢?

有两个依据可供参考。第一个是,查看索引的“高度”,如果索引树高超过了4我们就需要重点关注;另外一个参考依据是,索引条目被删除的数据占总索引条目的百分比如果超过了20%,一般在这种情况下就要考虑重建索引。

如果获得这两个参考依据?方法其实很简单,我们仅需对索引进行一下分析,然后通过INDEX_STATS视图辅助分析即可。拿一个具体的例子看一下。

1.分析索引
nt5beijing@bidb> analyze index SALES_INFO_IDX validate structure;

Index analyzed.

2.得出重建索引的判断依据
nt5beijing@bidb> select HEIGHT,(DEL_LF_ROWS/LF_ROWS)*100 from index_stats;

HEIGHT (DEL_LF_ROWS/LF_ROWS)*100

     4                .312030747

通过这样一条简单的SQL语句便可以给出我们两条重要的重建卖手机号码平台索引的依据。

3.根据上面的统计结果有何结论?重建索引?不重建索引?
答案是:不一定!
重建的理由:此处我们看到,该索引的高度已经突破了4,可以考虑重新创建一下该索引。
不重建的理由:从删除的索引叶子的数据与索引叶子总条数的比例上看远远的小于20%,此时不到1%。

这种现象多见于数据仓库类系统。需要酌情对此类索引进行调整。

4.关于INDEX_STATS的参考
请参考《【索引】使用索引分析快速得到索引的基本信息》

5.小结
本文并没有给出索引重建的金科玉律,没有一成不变的法则,一切都是参考信息,具体定夺的人是自己。
在生产环境中如果考虑对索引进行维护,往往考虑的因素很多,在这些参考依据的基础上还要考虑是否有充足的维护窗口,是否可以容忍在索引维护期间系统出现的锁等待问题。是采用DROP/CREATE方式还是REBUILD方式也要具体场景具体分析。

Good luck.

secooler
10.06.30

-- The End --

目录
相关文章
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(5)-索引使用(上),验证索引效率、最左前缀法则、范围查询、索引失效情况、SQL提示
MySQL数据库——索引(5)-索引使用(上),验证索引效率、最左前缀法则、范围查询、索引失效情况、SQL提示
90 0
|
SQL 关系型数据库 MySQL
MySQL去除表中重复数据后保留最小ID数据【测试可用】
MySQL去除表中重复数据后保留最小ID数据【测试可用】
134 0
测试关于索引的操作-创建索引
测试关于索引的操作-创建索引
测试关于索引的操作- 修改索引
测试关于索引的操作- 修改索引
|
C++ 索引
C/C++编程题之合并表记录
C/C++编程题之合并表记录
|
存储 SQL 关系型数据库
|
索引
索引分类、创建索引、删除索引
索引分类、创建索引、删除索引
140 0
索引分类、创建索引、删除索引
|
数据库 索引
存在逻辑删除的表字段上建立唯一索引的巧办法 (逻辑删除与唯一索引)
设计数据库唯一索引时,经常会碰到唯一删除的键值,导致很难处理,这里就简单介绍一种巧办法,帮你快速解决该问题
2001 0
存在逻辑删除的表字段上建立唯一索引的巧办法 (逻辑删除与唯一索引)
|
SQL 存储 索引
sql server 索引阐述系列七 索引填充因子与碎片
原文:sql server 索引阐述系列七 索引填充因子与碎片 一.概述     索引填充因子作用:提供填充因子选项是为了优化索引数据存储和性能。 当创建或重新生成索引时,填充因子的值可确定每个叶级页上要填充数据的空间百分比,以便在每一页上保留一些剩余存储空间作为以后扩展索引的可用空间,例如:指定填充因子的值为 80 表示每个叶级页上将有 20% 的空间保留为空,以便随着向基础表中添加数据而为扩展索引提供空间。
1128 0