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

Oracle 19C 配置SQL自动调整任务

原创 Asher.HU 2021-02-04
2151


您可以使用Cloud Control或命令行配置自动SQL调整任务。

本节包含以下主题:

 

24.2.3.1使用云控制配置自动SQL优化任务

您可以使用Cloud Control启用和禁用所有自动维护任务,包括“自动SQL调整”任务。您必须以PL / SQL软件包SYSEXECUTE身份执行操作或具有该特权DBMS_AUTO_SQLTUNE

要使用Cloud Control配置自动SQL调整任务,请执行以下操作:

  1. 使用适当的凭据登录到Cloud Control。
  2. 在“ 目标”菜单下,选择“ 数据库”
  3. 在数据库目标列表中,选择要管理的Oracle数据库实例的目标。
  4. 如果提示您输入数据库凭据,则输入您打算执行的任务所需的最低凭据。
  5. 管理菜单上,单击Oracle Scheduler,然后单击自动维护任务

    出现“自动维护任务”页面。

    此页面显示预定义的任务。您可以通过单击相应的链接来访问每个任务,以获取有关任务本身的更多信息。

  6. 单击自动SQL调整

    将显示“自动SQL调整结果摘要”页面。

  7. 在“任务设置”下,单击“ 自动SQL调整”(旁边的 配置”SYS_AUTO_SQL_TUNING_TASK

    出现“自动维护任务配置”页面。

  8. 在“任务设置”下,单击“ 自动SQL调整”旁边的 配置”

    将显示“自动SQL调整设置”页面。


  9. 进行所需的更改,然后单击Apply

 

24.2.3.2使用命令行配置自动SQL优化任务

DBMS_AUTO_SQLTUNE软件包使您可以通过使用SET_AUTO_TUNING_TASK_PARAMETER过程指定任务参数来配置SQL自动调整

由于任务由拥有SYS,因此只能SYS设置任务参数。

ACCEPT_SQL_PROFILE调整任务参数指定是否自动执行SQL配置文件(true)或需要用户干预(false)。缺省值为AUTO,这表示true是否至少有一个SQL语句与一个SQL概要文件一起存在,并且false不满足此条件。

注意:

启用自动实施后,顾问程序仅实施建议以创建SQL配置文件。创建新索引,收集优化器统计信息以及创建SQL计划基准之类的建议不会自动实现。

假设条件

本教程假定以下内容:

  • 您希望数据库自动实现SQL概要文件,但是每次执行不超过50个SQL概要文件,并且数据库上总共不超过50个概要文件。
  • 您希望任务在每次执行1200秒后超时。

设置自动SQL调整任务参数:

  1. 使用适当的权限将SQL * Plus连接到数据库,然后选择查询当前任务设置。

    例如,使用管理员权限将SQL * Plus连接到数据库,然后执行以下查询:

    COL PARAMETER_NAME FORMAT a25 
    COL VALUE FORMAT a10   
    
    SELECT PARAMETER_NAME, PARAMETER_VALUE AS "VALUE"
    FROM   DBA_ADVISOR_PARAMETERS
    WHERE  ( (TASK_NAME = 'SYS_AUTO_SQL_TUNING_TASK') AND
             ( (PARAMETER_NAME LIKE '%PROFILE%') OR 
               (PARAMETER_NAME = 'LOCAL_TIME_LIMIT') OR
               (PARAMETER_NAME = 'EXECUTION_DAYS_TO_EXPIRE') ) );
    

    示例输出如下所示:

    PARAMETER_NAME            VALUE
    ------------------------- ----------
    EXECUTION_DAYS_TO_EXPIRE  30
    LOCAL_TIME_LIMIT          1000
    ACCEPT_SQL_PROFILES       FALSE
    MAX_SQL_PROFILES_PER_EXEC 20
    MAX_AUTO_SQL_PROFILES     10000
    
  2. 使用以下形式的PL / SQL代码设置参数:
    BEGIN
      DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER (
        task_name => 'SYS_AUTO_SQL_TUNING_TASK'
    ,   parameter => parameter_name
    ,   value     => value
    );
    END;
    /

示例24-3设置SQL调整任务参数

以下PL / SQL块将时间限制设置为20分钟,并且还自动实现SQL配置文件并为这些配置文件设置限制:

BEGIN
  DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
    'LOCAL_TIME_LIMIT', 1200);
  DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
    'ACCEPT_SQL_PROFILES', 'true');
  DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
    'MAX_SQL_PROFILES_PER_EXEC', 50);
  DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
    'MAX_AUTO_SQL_PROFILES', 10002);
END;
/

也可以看看:

《 Oracle数据库PL / SQL软件包和类型参考》,以获得有关DBMS_AUTO_SQLTUNE

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

评论