为何ADW上手动创建的索引默认未开启压缩?
ADW手动创建索引默认未开启压缩的原因
在Oracle自治数据仓库(ADW)实例中,自动索引与手动创建索引的默认压缩策略差异是设计层面的有意设定,核心原因如下:
- 自动索引是ADW内置的自治优化功能,后台逻辑会自动评估索引的存储、查询收益,默认开启压缩是因为ADW面向分析场景,索引压缩可大幅减少存储空间占用、降低全索引扫描的IO开销,整体收益远高于压缩带来的少量CPU消耗,因此自动创建索引时会默认追加
compress参数。 - 手动创建索引默认不开启压缩,是为了和标准Oracle数据库的DDL行为保持兼容,避免默认策略变更导致用户原有脚本执行结果不符合预期。同时索引压缩并非所有场景都适用:如果索引对应的表有高频DML操作,压缩会提升数据修改时的CPU开销,因此将是否开启压缩的选择权交给用户,由用户根据自身业务场景决定是否在创建语句中添加
compress参数。
你提交的测试用例可以稳定复现该行为:
Test case: ========== SQL> create table a (a number); Table created. SQL> create index a_ind on a (a); Index created. SQL> select INDEX_NAME,COMPRESSION from dba_indexes where index_name='A_IND'; INDEX_NAME -------------------------------------------------------------------------------- COMPRESSION ------------- A_IND DISABLED SQL> drop index a_ind ; Index dropped. SQL> create index a_ind on a (a) compress; Index created. SQL> select INDEX_NAME,COMPRESSION from dba_indexes where index_name='A_IND'; INDEX_NAME -------------------------------------------------------------------------------- COMPRESSION ------------- A_IND ENABLED
内容的提问来源于stack exchange,提问作者Engin SENEL
相关产品推荐
相关产品推荐

