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

Oracle 19C 执行SQL Access Advisor任务

原创 Asher.HU 2021-02-04
796

 

DBMS_ADVISOR.EXECUTE_TASK过程对指定任务执行SQL Access Advisor分析或评估。

任务执行是一个同步操作,因此在操作完成或数据库检测到用户中断之前,数据库不会将控制权还给用户。返回或执行任务后,可以检查DBA_ADVISOR_LOG表中的执行状态。

跑步会EXECUTE_TASK产生建议。推荐包括一个或多个操作,例如创建实例化视图日志或实例化视图。

先决条件

在处理工作负载时,SQL Access Advisor尝试验证每个语句以标识表和列引用。数据库通过处理每个语句,就好像该语句的原始用户正在执行该语句来实现验证。

如果用户没有SELECT对特定表的特权,则SQL Access Advisor绕过引用该表的语句。此行为可能导致许多语句从分析中排除。如果SQL Access Advisor排除工作负载中的所有语句,则该工作负载无效。SQL Access Advisor返回以下消息:

QSM-00774, there are no SQL statements to process for task TASK_NAME

为了避免丢失关键的工作负载查询,当前数据库用户必须SELECT对物化视图分析目标表具有特权。对于这些表,SELECT无法通过角色获得这些特权。

假设条件

本教程假定您要执行在 创建和配置SQL Access Advisor任务 ”中配置的任务

要创建和配置SQL Access Advisor任务,请执行以下操作:

  1. 在SQL * Plus或SQL Developer中,以具有必要特权的用户身份登录数据库。
  2. 执行任务。

    例如,执行以下语句:

    EXECUTE DBMS_ADVISOR.EXECUTE_TASK(:task_name);
    
  3. (可选)查询USER_ADVISOR_LOG以检查任务的状态。

    例如,执行以下语句(包括示例输出):

    COL TASK_ID FORMAT 999
    COL TASK_NAME FORMAT a25
    COL STATUS_MESSAGE FORMAT a25
    
    SELECT TASK_ID, TASK_NAME, STATUS, STATUS_MESSAGE 
    FROM   USER_ADVISOR_LOG;
    
    TASK_ID TASK_NAME                 STATUS      STATUS_MESSAGE
    ------- ------------------------- ----------- -------------------------
        103 MYTASK                    COMPLETED   Access advisor execution
                                                  completed

也可以看看:

Oracle Database PL / SQL软件包和类型参考,以了解有关该EXECUTE_TASK过程及其参数的 更多信息

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

评论