Deven Asked: 2014-02-15 04:13:51 +0800 CST2014-02-15 04:13:51 +0800 CST 2014-02-15 04:13:51 +0800 CST 在 Oracle 中使用 SQL 访问顾问的技巧 772 请分享如何使用 oracle SQL 访问顾问进行单个或多个查询。您可以假设我们知道我们感兴趣的查询的 sql id。 oracle performance 2 个回答 Voted Best Answer ik_zelf 2014-02-15T05:42:12+08:002014-02-15T05:42:12+08:00 就像是: declare task varchar2(30); begin task:= dbms_sqltune.CREATE_TUNING_TASK ( sql_id => '&sql_id', plan_hash_value => '&hv' ); dbms_output.put_line (task); dbms_sqltune.execute_tuning_task(task); end; / 让工作运行。列出任务: SELECT task_id, task_name, created, advisor_name, status FROM dba_advisor_tasks where TRUNC(created) = TRUNC(sysdate) order by CREATEd desc; 准备好后,阅读报告 SELECT DBMS_SQLTUNE.report_tuning_task('&tuning_task') AS recommendations FROM dual; 如果需要,请实施建议: DECLARE -- accept plan profile l_sql_tune_task_id VARCHAR2(20); BEGIN l_sql_tune_task_id := DBMS_SQLTUNE.accept_sql_profile ( task_name => '&tuning_task', name => '&profile'); DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id); END; / 阅读这些软件包会有很大帮助。 对于 SQL 访问顾问,请查看Oracle 数据库中的 SQL 访问顾问 atenz 2014-02-20T07:46:24+08:002014-02-20T07:46:24+08:00 另一种方法是使用内置脚本。 @?/rdbms/admin/sqltrpt.sql。 它将显示前 15 个资源密集型 SQL 并提示输入您要调整的期望 SQL_ID。 您甚至可以自定义它以显示顶级 SQL 的数量。
就像是:
让工作运行。列出任务:
准备好后,阅读报告
如果需要,请实施建议:
阅读这些软件包会有很大帮助。
对于 SQL 访问顾问,请查看Oracle 数据库中的 SQL 访问顾问
另一种方法是使用内置脚本。
@?/rdbms/admin/sqltrpt.sql。
它将显示前 15 个资源密集型 SQL 并提示输入您要调整的期望 SQL_ID。
您甚至可以自定义它以显示顶级 SQL 的数量。