码迷,mamicode.com
首页 > 其他好文 > 详细

压缩索引与普通索引对比

时间:2014-10-31 22:07:14      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:blog   http   sp   on   log   ef   as   sql   .net   

SQL> drop table t1 purge;

表已删除。

SQL> create table t1 as select  * from emp;

表已创建。

SQL> insert into t1 select * from t1;

已创建 14 行。

SQL> /

已创建 28 行。

SQL> /

已创建 56 行。

SQL> /

已创建 112 行。

SQL> /

已创建 224 行。

SQL> /

已创建 448 行。

SQL> /

已创建 896 行。

SQL> /

已创建 1792 行。

SQL> /

已创建 3584 行。

SQL> /

已创建 7168 行。

SQL> /

已创建 14336 行。

SQL> /

已创建 28672 行。

SQL> commit;

提交完成。

SQL> drop table t2;
drop table t2
           *
第 1 行出现错误:
ORA-00942: 表或视图不存在

SQL> create table t2 as select * from t1;

表已创建。

SQL> create index i1 on t1(empno);

索引已创建。

SQL> create index i2 on t2(empno) compress;

索引已创建。

SQL> select blocks,lf_blks,lf_rows from index_stats;

未选定行

SQL> analyze index i1 validate structure;

索引已分析

SQL> select blocks,lf_blks,lf_rows from index_stats;

    BLOCKS    LF_BLKS    LF_ROWS
---------- ---------- ----------
       256        120      57344

SQL> analyze index i2 validate structure;

索引已分析

SQL> select blocks,lf_blks,lf_rows from index_stats;

    BLOCKS    LF_BLKS    LF_ROWS
---------- ---------- ----------
       104         89      57344

SQL> drop index i1;

索引已删除。

SQL> c/1/2
  1* drop index i2
SQL> /

索引已删除。

SQL> alter table t1 modify(empno number);

表已更改。

SQL> c/1/2
  1* alter table t2 modify(empno number)
SQL> /

表已更改。

SQL> update t1 set empno=rownum;

已更新57344行。

SQL> c/1/2
  1* update t2 set empno=rownum
SQL> /

已更新57344行。

SQL> commit;

提交完成。

SQL> create index i1 on t1(empno);

索引已创建。

SQL> create index i2 on t2(empno) compress;

索引已创建。

SQL> analyze index i2 validate structure;

索引已分析

SQL> select blocks,lf_blks,lf_rows from index_stats;

    BLOCKS    LF_BLKS    LF_ROWS
---------- ---------- ----------
       256        175      57344

SQL>
SQL> analyze index i1 validate structure;

索引已分析

SQL> select blocks,lf_blks,lf_rows from index_stats;

    BLOCKS    LF_BLKS    LF_ROWS
---------- ---------- ----------
       256        127      57344

分析:
1.重复值较多时,压缩索引所占的块数和leaf blocks 都少于普通索引
2.重复值较少时,压缩索引所占的块数和普通索引差不多,但是leaf blocks多余普通索引。
3.压缩索引在update后重建,压缩索引所占的块数和leaf blocks会暴涨。

结论:
压缩索引适用于重复值多,且update较少的表。

压缩索引与普通索引对比

标签:blog   http   sp   on   log   ef   as   sql   .net   

原文地址:http://www.cnblogs.com/afx1007/p/4065966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!