论坛首页 综合技术论坛

使用 SQL Tuning Advisor

浏览 2902 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-05   最后修改:2010-01-05
我的sql在oracle数据库上需要运行很长时间,找来找去不知道如果优化是好。于是选择了SQL Tuning Advisor来帮助我,它会给出一些建议。以下语句在任何dbcilent运行均可,如sqlplus

1. 创建sql tuning任务
declare
l_task_id     varchar2(20);
l_sql         varchar2(2000);
begin l_sql := 'sql demo';
dbms_sqltune.drop_tuning_task ('FOLIO_COUNT');//如果第一次运行删除此行
l_task_id := dbms_sqltune.create_tuning_task (
sql_text  => l_sql,
user_name  => 'ARUP',
scope      => 'COMPREHENSIVE',
time_limit => 120,
task_name  => 'FOLIO_COUNT'   );

dbms_sqltune.execute_tuning_task ('FOLIO_COUNT');//创建任务
end;

2. 查看结果
这个包创建并执行了一个名为FOLIO_COUNT的调整任务。接下来,您将需要查看任务执行的结果(也就是说,查看建议)。
set serveroutput on size 999999
set long 999999
select dbms_sqltune.report_tuning_task ('FOLIO_COUNT') from dual;

3.查看任务执行状态。

SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'FOLIO_COUNT';

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics