Oracle Exadata自动索引配置与使用

需积分: 41 15 下载量 95 浏览量 更新于2024-08-06 收藏 4.57MB PDF 举报
"自动索引-deep learning in remote sensing a review" 本文主要关注的是Oracle 19C数据库的新特性——自动索引。自动索引是一种先进的数据库管理技术,旨在优化查询性能,通过智能地创建、管理和调整索引来适应数据的变化。 一、检查自动索引状态 在Oracle 19C中,你可以通过查询`cdb_auto_index_config`视图来检查自动索引的配置。以下SQL语句展示了如何查看当前的自动索引设置: ```sql COLUMN parameter_name FORMAT A40 COLUMN parameter_value FORMAT A20 SELECT con_id, parameter_name, parameter_value FROM cdb_auto_index_config; ``` 二、启用和管理自动索引 Oracle提供了一个名为`DBMS_AUTO_INDEX`的包,其中包含用于管理自动索引的存储过程。自动索引有三种工作模式: 1. `IMPLEMENT`:在这个模式下,自动索引会被启用,新创建的索引将被优化器使用,并且其状态设为可见。这有助于提升查询性能。 2. `REPORTONLY`:在这种模式下,自动索引功能仍然开启,但创建的索引状态是不可见的,仅用于报告目的,不参与实际查询优化。 3. `OFF`:关闭自动索引功能,意味着系统将不再自动创建或管理索引。 你可以通过执行以下语句来改变自动索引的工作模式: ```sql EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE', 'IMPLEMENT'); EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE', 'REPORTONLY'); EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE', 'OFF'); ``` 三、注意事项 1. 自动索引功能目前仅在运行在Exadata硬件上的Oracle 19C数据库中可用。 2. 在容器数据库(CDB)级别启用自动索引并不会自动影响其下的可插拔数据库(PDB),你需要在每个PDB中单独启用。 3. 自定义自动索引的表空间:默认情况下,自动索引会使用系统默认的永久表空间。你可以创建一个专门用于自动索引的表空间,如`AUTO_INDEXES_TBS`,并使用`DBMS_AUTO_INDEX.CONFIGURE`存储过程来指定它: ```sql ALTER SESSION SET CONTAINER=orclpdb1; CREATE TABLESPACE AUTO_INDEXES_TBS DATAFILE '/opt/ts001.dbf' SIZE 500M; EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_DEFAULT_TABLESPACE', 'AUTO_INDEXES_TBS'); ``` 然后,你可以再次查询`cdb_auto_index_config`视图来验证设置是否生效。 四、总结 自动索引是Oracle 19C对数据库性能管理的一大改进,它能够根据工作负载自动调整索引策略,减轻了数据库管理员的工作负担。然而,正确配置和管理自动索引至关重要,包括选择合适的运行模式和分配专用的存储空间,以确保系统的高效运行和数据访问的优化。在实际应用中,应密切关注自动索引的行为,以确保它们符合预期,并适时进行调整。