oracle Advisor调优工具使用(命令行)

Oracle 的 的 SQL 优化工具( 命令)
按照下列步骤得到 Advisor 的调优建议。
(1)作为特权用户连接到系统,并执行以下语授权给将要执行调优分析的 SCHEMA:
GRANT ADMINISTER SQL TUNING SET TO &&tune_user;
GRANT ADVISOR TO &&tune_user;
GRANT CREATE ANY SQL PROFILE TO &&tune_user;
GRANT ALTER ANY SQL PROFILE TO &&tune_user;
GRANT DROP ANY SQL PROFILE TO &&tune_user;
如果正在使用的数据库是 Oracle Database11g,那么上面的 GRANT...ANY SQL PROFILE
语可以替换为:
GRANT ADMINISTER SQL MANAGEMENT OBJECT TO && tune_user ;
(2)使用 DBMS_SQLTUNE 包来创建一个优化任务。更改以下代码使其与我们试图调整的
查询及用户名相匹配:
DECLARE
tune_task_name VARCHAR2 (30);
tune_sql CLOB;
BEGIN
tune_sql := 'select a.emp_name, b.dept_name from emp a, dept b';
tune_task_name :=
DBMS_SQLTUNE.CREATE_TUNING_TASK (
sql_text => tune_sql,
user_name => 'STAR_APR',
scope => 'COMPREHENSIVE',
time_limit => 1800,
task_name => 'tune1',
description => 'Basic tuning example');
END;
/
(3)通过查询 USER_ADVISOR_LOG 视图来确认调优任务存在:
SELECT task_name
FROM user_advisor_log
WHERE task_name LIKE 'tune1';
(4)运行调优任务:
EXEC DBMS_SQLTUNE. EXECUTE_TUNING_TASK(task_name=>'tunel');
(5)显示 SQLTuningAdvisor 报告。运行下面的 SQL 语显示输出:
SET LONG 10000
SET LONGCHUNKSIZE 10000
SET LINESIZE 132
SET PAGESIZE 200
SELECT DBMS_SQLTUNE. REPORT_TUNING_TASK('tunel') FROM dual ;
SQLTuningAdvisor 可以自动调优性能不佳的查询任务。该工具相当易于使用,且调优
输出报告提供了对于如何调优查询的详细建议。
如果需要删除一个调优任务,使用如下 DBMS_SQLTUNE 包:
EXEC DBMS_SQLTUNE.DROP_TUNING_TASK(task_name=>'tune1');

你可能感兴趣的:(ORACLE)