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

Oracle 19C 配置SQL调整任务

原创 Asher.HU 2021-02-04
1027


要在创建调整任务后更改其参数,请执行该DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER功能。

本教程假定以下内容:

  • 您想使用hr已被授予ADVISOR特权的用户account进行调整
  • 您要调整STA_SPECIFIC_EMP_TASK 创建SQL调整任务 ”中创建的内容
  • 您希望将SQL优化任务可以运行的最长时间更改为300秒。

要配置SQL调整任务:

  1. 使用适当的权限将SQL * Plus连接到数据库,然后运行该DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER函数。

    例如,执行以下PL / SQL程序,将调整任务的时间限制更改为300秒:

    BEGIN
      DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER (
        task_name => 'STA_SPECIFIC_EMP_TASK'
    ,   parameter => 'TIME_LIMIT'
    ,   value     => 300
    );
    END;
    /
    
  2. (可选)验证任务参数已更改。

    以下示例查询task中所有使用的参数的值STA_SPECIFIC_EMP_TASK

    COL PARAMETER_NAME FORMAT a25 
    COL VALUE FORMAT a15   
    
    SELECT PARAMETER_NAME, PARAMETER_VALUE AS "VALUE"
    FROM   USER_ADVISOR_PARAMETERS
    WHERE  TASK_NAME = 'STA_SPECIFIC_EMP_TASK'
    AND    PARAMETER_VALUE != 'UNUSED'
    ORDER BY PARAMETER_NAME;
    

    输出示例如下:

    PARAMETER_NAME            VALUE
    ------------------------- ---------------
    DAYS_TO_EXPIRE            30
    DEFAULT_EXECUTION_TYPE    TUNE SQL
    EXECUTION_DAYS_TO_EXPIRE  UNLIMITED
    JOURNALING                INFORMATION
    MODE                      COMPREHENSIVE
    SQL_LIMIT                 -1
    SQL_PERCENTAGE            1
    TARGET_OBJECTS            1
    TEST_EXECUTE              AUTO
    TIME_LIMIT                300

示例24-4使用数据库链接调整备用数据库工作负载

Oracle Database 12c第2版(12.2)开始,您可以通过在database_link_to参数中指定数据库链接来调整备用数据库工作负载出于安全原因,Oracle建议使用专用数据库链接。该链接必须SYS由特权用户拥有并可以由特权用户访问。Oracle数据库包括名为的默认特权用户SYS$UMF

在备用数据库上发出的以下程序显示了查询SQL的示例调整会话table1database_link_to参数指定备用数据库到主数据库链接的名称。

VARIABLE tname VARCHAR2(30);
VARIABLE query VARCHAR2(500);

EXEC :tname := 'my_task';
EXEC :query := 'SELECT /*+ FULL(t)*/ col1 FROM table1 t WHERE col1=9000';

BEGIN 
:tname := DBMS_SQLTUNE.CREATE_TUNING_TASK(
            sql_text         => :query
          , task_name        => :tname
          , database_link_to => 'lnk_to_pri' );
END;
/

EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK(:tname);

SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:tname) FROM DUAL;

BEGIN
  DBMS_SQLTUNE.ACCEPT_SQL_PROFILE(
    task_name        => :tname
,   name             => 'prof'
,   task_owner       => 'SYS'
,   replace          => TRUE
,   database_link_to => 'lnk_to_pri' );
END;
/

请注意,备用数据库不支持bind_listof 参数CREATE_TUNING_TASK

也可以看看:

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

评论