暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 自动索引

原创 Asher.HU 2021-02-04
1617
Oracle数据库可以不断监视应用程序工作负载,自动创建和管理索引。

注意:

有关不同版本和服务支持哪些功能的详细信息,请参见《Oracle数据库许可信息用户手册

手动创建索引需要深入了解数据模型,应用程序和数据分布。DBA通常会选择要创建的索引,然后再不修改其选择。结果,失去了改进的机会,不必要的指标可能成为性能责任。自动索引管理通过执行以下任务来解决此问题:

  • 持续监控工作量
  • 创建新索引
  • 重建索引,然后将其标记为不可用或不可见
  • 删除索引
  • 检查自动索引管理对性能的影响

索引功能是作为自动任务执行的,该任务在后台以固定间隔运行。在每次迭代中,任务执行以下基本步骤:

  1. 根据列和列组的使用情况识别索引候选者。
  2. 在不可用和不可见模式下创建一组候选索引。这些索引不占用存储空间。
  3. 查阅先前执行的语句的优先列表,以确定是否值得重建候选索引。
  4. 编译语句以确定优化器是否会选择新索引,然后重建优化器选择的索引。
  5. 执行使用自动索引的语句
  6. 执行以下任一操作:
    • 当语句将显着提高其性能时,将索引标记为可见。只有在验证索引并将其标记为可见之后,数据库才会更改工作负载中的语句计划。在此之前,数据库不会使游标无效,而是继续使用旧计划。
    • 当索引提供的性能不足时,将其标记为不可用。当将索引用于其他语句的可能性较低或存在空间压力时,将以延迟的方式进行此操作。
  7. 通过使用SQL计划管理避免回归。索引可能会使一条语句受益,但会导致第二条语句的性能下降。在这种情况下,数据库通过将索引标记为可见来优化第一条语句。为了防止第二条语句的回归,数据库通过SQL计划管理来保护它。
  8. 删除长时间不使用的索引。

您可以通过在DBMS_AUTO_INDEX软件包中执行以下过程来启用自动索引

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT')

您还可以使用该DBMS_AUTO_INDEX程序包报告自动任务并配置设置,例如将未使用的索引保留多长时间。

也可以看看:


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论