Oracle Database 19c 引入了"自动索引"(Automatic Indexing)这一重大特性,它利用机器学习和数据库内部的智能分析来自动化索引管理过程。自动索引功能主要聚焦于根据实际工作负载动态创建、重建或删除索引,以优化查询性能并减少DBA的手动维护工作。
自动索引的主要特点:
-
动态监控与决策:
- 自动索引持续监控数据库的工作负载,包括SQL语句执行情况、数据分布和访问模式等。
- 它会分析这些信息,并决定是否有必要在特定表上创建新的索引以提升查询效率。
-
索引创建:
- 当系统检测到某个SQL查询频繁且没有合适的索引支持时,它会自动为该查询生成一个预期能显著改善性能的索引。
-
索引重构与删除:
- 如果已有的索引不再有效或者对当前工作负载不再产生积极影响,自动索引功能也会建议并可能执行索引的重建或删除操作。
-
自适应性:
- 根据应用程序负载的变化,自动调整索引结构,确保索引始终与最新的查询模式保持一致。
-
平台依赖性:
- Oracle官方文档指出,自动索引最初仅在特定环境下得到支持,如Oracle Exadata一体机,但后续版本可能会扩展到其他配置。
-
用户控制与审核:
- DBA可以定制自动索引策略,比如设置阈值、限制其应用范围以及审批机制。
- 提供审计日志,记录所有自动索引操作,方便审查和了解索引变化的历史原因。
-
时间间隔处理:
- 自动索引可按指定的时间间隔定期运行分析任务,而不是实时响应所有查询变化,这有助于平衡资源消耗和实时优化的需求。
使用自动索引时需要注意的是,虽然该特性能够减轻数据库管理员(DBA)的工作负担,但也需要适当监督和配置以确保索引策略符合业务需求和SLA标准。此外,对于非常大的数据库或高度敏感的应用场景,DBA通常会更加谨慎地采用自动索引功能,以免意外影响生产环境的稳定性或安全性。