oracle重建索引需要多长时间,Oracle索引重建到底会提高多少性能?

工作中往往会观察到索引重建带来的空间释放和应用性能提升。空间释放比较容易理解,也非常容易度量,那么索引重建到底会对应用的性能有多少影响那?首先我们会问:索引重建为什么会带来性能的提升?毫无疑问,这是因为索引重建后,与索引有关的io操作得到了降低。那么,索引io的降低在多大程度上影响了应用语句的执行效率?这恐怕需要具体问题具体分析了。

首先,我们来看一下多数情况下,索引重建的效果如何

SQL> create table t1 as select rownum rn,dbms_random.string('u',20) name1,dbms_random.string('u',15) name2 from dual connect by level < 1000000;

表已创建。

SQL> create index i1 on t1(rn);

索引已创建。

SQL> analyze index i1 validate structure;

索引已分析

SQL> select height,lf_rows,del_lf_rows,lf_blks,del_lf_rows btree_space,used_space,pct_used from index_stats;

HEIGHT    LF_ROWS DEL_LF_ROWS    LF_BLKS BTREE_SPACE USED_SPACE  PCT_USED

---------- ---------- ----------- ---------- ----------- ---------- ----------

3    999999  0 2226        0  16006445    90

SQL> del

你可能感兴趣的:(oracle重建索引需要多长时间,Oracle索引重建到底会提高多少性能?)