Oracle 21c 新特性 自动SQL调优集




  • 自动 SQL 调优集 (ASTS) 是系统维护的 SQL 执行计划和数据库看到的 SQL 语句性能指标的记录。 随着时间的推移,ASTS 将包括系统上所有查询的示例。存储在 ASTS 中的 SQL 计划和指标对于使用 SQL 计划管理快速修复 SQL 性能回归非常有用。

    ASTS 能够以最少的人工干预快速解决 SQL 性能回归问题。 它是对自动工作负载存储库 (AWR) 的补充,并被视为 Oracle 数据库的类似核心可管理性基础架构。

    介绍自动SQL调优集

    自动 SQL 调优集 (ASTS) 是系统维护的 SQL 执行计划和数据库看到的 SQL 语句性能指标的记录。它使用自动 SQL 计划管理来分析这些数据并快速修复 SQL 性能回归。

    ASTS 以最少的人工干预快速解决 SQL 语句性能回归问题。它降低了与数据库更改、系统配置更改和升级相关的风险。它是自我维护的,无需配置。默认情况下启用ASTS。 Oracle 建议您保持启用它。

    注意:如果您使用自动索引(依赖于 ASTS),请不要禁用 ASTS 任务。自动 SQL 计划管理使用 ASTS 作为替代 SQL 执行计划的来源。

    随着时间的推移,ASTS 会积累系统上执行的所有 SQL 语句的信息(包括所有执行计划的详细信息)。

     

    ASTS 和 AWR

    ASTS 是 AWR 的补充。两者都是 Oracle 数据库的核心可管理性基础架构组件。

    与 AWR 一样,ASTS 是 SQL 执行计划和 SQL 语句性能指标的历史记录。它与自动工作负载存储库 (AWR) 不同,因为它不限于消耗大量系统资源的语句。随着时间的推移,ASTS 将包括系统上看到的所有查询的示例。但是,它确实对不可重用语句的集合施加了限制,例如临时查询或使用文字而不是绑定变量的语句。

    在回归是由计划更改引起的情况下,ASTS 对于诊断和潜在地纠正 SQL 性能回归特别有用。在这种情况下,AWR 中不太可能提供更好的计划,但它会在 ASTS 中提供。这很重要,因为例如,SQL 计划管理可用于定位、测试和执行 ASTS 中包含的更好的 SQL 执行计划。自动 SQL 计划管理实现了整个工作流程,无需人工干预。

    如何在 ASTS 中查看捕获的 SQL 语句

    Select sql_text
    from dba_sqlset_Statements
    where sqlset_name = 'SYS_AUTO_STS';

    启用 ASTS 任务

    Begin
    DBMS_Auto_Task_Admin.Enable(
    Client_Name => 'Auto STS Capture Task',
    Operation => NULL,
    Window_name => NULL);
    End;
    /

    禁用 ASTS 任务

    Begin
    DBMS_Auto_Task_Admin.Disable(
    Client_Name => 'Auto STS Capture Task',
    Operation => NULL,
    Window_name => NULL);
    End;
    /

    查看任务状态

    Select Task_Name, Enabled
    From   DBA_AutoTask_Schedule_Control
    Where Task_Name = 'Auto STS Capture Task';

    【参考文档】

    https://docs.oracle.com/en/database/oracle/oracle-database/21/tgsql/sql-tuning-advisor.html#GUID-8694BFDF-E2E6-43EF-8291-B03000BFA250

    Speak Your Mind

    *

    京ICP备14059771号-2