重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: Oracle 19c中的自动索引(DBMS_AUTO_INDEX) [打印本页]

作者: 刘泽宇    时间: 5 天前
标题: Oracle 19c中的自动索引(DBMS_AUTO_INDEX)
自动索引功能执行以下操作。

根据表列使用情况确定潜在的自动索引。文档称这些为“候选索引(candidate indexes)”。
将自动索引创建为不可见索引,因此不会在执行计划中使用它们。索引名称包括“SYS_AI”前缀。
根据SQL语句测试不可见的自动索引,以确保它们能提高性能。如果它们导致性能提高,则可以它们可见。如果性能未得到改善,则相关的自动索引将标记为不可用,稍后将被删除。针对失败的自动索引测试的SQL语句被列入黑名单,因此将来不会考虑将它们用于自动索引。第一次对数据库运行SQL时,优化程序不会考虑自动索引。
删除未使用的索引。
先决条件

Oracle 19c,此功能仅限于企业版。通过设置初始化参数“_exadata_feature_on=true”进行测试。

显示配置
CDB_AUTO_INDEX_CONFIG视图显示当前的自动索引配置。



SELECT con_id, parameter_name, parameter_value
FROM   cdb_auto_index_config
ORDER BY 1, 2;

    CON_ID PARAMETER_NAME                           PARAMETER_VALUE
---------- ---------------------------------------- ---------------
         1 AUTO_INDEX_COMPRESSION                   OFF
         1 AUTO_INDEX_DEFAULT_TABLESPACE
         1 AUTO_INDEX_MODE                          OFF
         1 AUTO_INDEX_REPORT_RETENTION              31
         1 AUTO_INDEX_RETENTION_FOR_AUTO            373
         1 AUTO_INDEX_RETENTION_FOR_MANUAL
         1 AUTO_INDEX_SCHEMA
         1 AUTO_INDEX_SPACE_BUDGET                  50
         3 AUTO_INDEX_COMPRESSION                   OFF
         3 AUTO_INDEX_DEFAULT_TABLESPACE
         3 AUTO_INDEX_MODE                          OFF
         3 AUTO_INDEX_REPORT_RETENTION              31
         3 AUTO_INDEX_RETENTION_FOR_AUTO            373
         3 AUTO_INDEX_RETENTION_FOR_MANUAL
         3 AUTO_INDEX_SCHEMA
         3 AUTO_INDEX_SPACE_BUDGET                  50


启用/禁用自动索引
使用 DBMS_AUTO_INDEX 包的 CONFIGURE 存储过程配置自动索引。

使用 AUTO_INDEX_MODE 属性控制用于自动索引的开关,该属性具有以下允许值:

IMPLEMENT:打开自动索引。提高性能的新索引可见并可供优化程序使用。
REPORT ONLY:打开自动索引,但新索引仍然不可见。
OFF:关闭自动索引。

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');
EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','REPORT ONLY');
EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

产生的自动索引命名为:SYS_AI_xxxx






欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2