oracle索引高级(三)分析和重构

analyze 操作只是统计信息,并将统计信息存放起来供日后分析SQL使用,不进行重建之类的具体实施性操作。
analyze table tablename compute statistics
等同于
analyze table tablename compute statistics for table for all indexes for all columns

  • for table 的统计信息存在于视图:user_tables 、all_tables、dba_tables
  • for all indexes 的统计信息存在于视图: user_indexes 、all_indexes、dba_indexes
  • for all columns
    的统计信息存在于视图:user_tab_columns、all_tab_columns、dba_tab_columns

条件1: 在分析(analyze)指定索引之后,查询index_stats的height字段的值,如果这个值>=4 ,则最好重建(rebuild)这个索引。虽然这个规则不是总是正确,但如果这个值一直都是不变的,则这个索引也就不需重建。
条件2: 在分析(analyze)指定索引之后,查询index_stats的del_lf_rows和lf_rows的值,如果(del_lf_rows/lf_rows)*100 > = 20,则这个索引也需要重建。
Alter index index_name rebuild;
Alter index index_name rebuild online;
rebuild和rebuild online的区别:
对于大数据、高可用性的系统,索引rebuild动作一定要慎用,最好选择在DML操作比较少的时间窗进行,避免影响业务系统; rebuild online和rebuild在处理上的差异。相对于rebuild,rebuild online对于DML操作的锁定动作是比较小的,但是相应操作时间也比较多。如果是高可用7*24系统,使用rebuild.

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lovergo/article/details/53219913
文章标签: 索引 oracle
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭