Oracle 官网文档:
http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT003
1.1 Advanced Index Compression
高级索引压缩
高级索引压缩很好地支持索引,包括那些索引:对于候选集不是很好的已存在前缀压缩索引;在索引的列族头,没有或者少有重复值的索引。当提供有效的索引入口时,高级索引压缩明显提高压缩比率。
创建一个具有高级索引压缩的索引
创建一个具有使用高级索引压缩的索引,降低尺寸支持所有的唯一(unique)或者非唯一(non-unique)的索引。
对于分区索引,我们可以制定压缩类型在分区上基于分区基础。我们可以制定高级索引压缩在索引分区上,当父索引没有压缩时。
高级索引压缩在块(block)级别为每个块(block)提供最好的压缩。当CREATE INDEX DDL语句被执行, 一个块(block)被填到行中。当它满的时候,他被以高级压缩索引的形式压缩,如果足够的空间被节省去插入下一行。 当DML 语句或者其他类型的DDL语句被执行, 一个块变满,它会被分割(split), 块(block)可能被压缩以高级索引压缩的方式去避免分割(split)如果足够的空间被节省去插入将来的键值(key)。
Oracle 12.1.0或者更高的兼容版本,才可以使用高级索引压缩(advanced index compression)。使用COMPRESS ADVANCED LOW
语句去使用高级索引压缩(enable advanced index compression)。如:
CREATE INDEX hr.emp_mndp_ix ON hr.employees(manager_id, department_id) COMPRESS ADVANCED LOW;
索引重建过程中,我们可以使用COMPRESS ADVANCED LOW语句。如:
ALTER INDEX hr.emp_manager_ix REBUILD COMPRESS ADVANCED LOW;
The COMPRESSION
column in the ALL_INDEXES
, ALL_IND_PARTITIONS
, and ALL_IND_SUBPARTITIONS
views shows whether an index is compressed, and, if it is compressed, the type of compression enabled for the index.
备注:
1. Advanced index compression不支持位图索引(bitmap indexes)和索引组织表(index-organized tables[Data (including no-key values) is sorted an stored in a B-tree index structure.]).
2. Advanced index compression不能指定在具有单独列的唯一索引上。(单独列一列的唯一索引,不需要再压缩了。)