oracle12c新特性索引压缩 COMPRESS ADVANCED LOW

oracle12c新特性索引压缩 COMPRESS ADVANCED LOW

从oracle 12.1.0.2版本起,创建索引时可以通过COMPRESS ADVANCED LOW对index进行压缩


语法

create index index_name on table_name(col_name) COMPRESS ADVANCED LOW;

alter index index_name REBUILD COMPRESS ADVANCED LOW;


压缩空间对比

create table ddeng as select * from dba_objects;

create index idx_ddeng on ddeng(object_id,object_name,owner);

-- 暂用空间大小
SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name = 'IDX_DDENG';

SEGMENT_NAME	     BYTES/1024/1024
-------------------- ---------------
IDX_DDENG			  80

-- 压缩后
SQL> alter index idx_ddeng  REBUILD COMPRESS ADVANCED LOW;

Index altered.

SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name = 'IDX_DDENG';

SEGMENT_NAME	     BYTES/1024/1024
-------------------- ---------------
IDX_DDENG			  22


启用COMPRESS ADVANCED LOW 在 dba_indexes.compression 值显示为Enable


Note:

  • Advanced index compression is not supported for bitmap indexes or index-organized tables.

  • Advanced index compression cannot be specified on a single column unique index.