该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任务,请执行以下操作:
- 在SQL * Plus或SQL Developer中,以具有必要特权的用户身份登录数据库。
- 执行任务。
例如,执行以下语句:
EXECUTE DBMS_ADVISOR.EXECUTE_TASK(:task_name); - (可选)查询
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




