oracle 10g sql tuning advisor 手工执行

1 单个sql 语句:

 (1)创建 sql tuning task

DECLARE
  my_task_name VARCHAR2(30);
  my_sqltext   CLOB;
  v_bind_lst       sql_binds;
BEGIN
  v_bind_lst := sql_binds(anydata.convertnumber(1234), 
                         anydata.convertvarchar2('03') );
  my_sqltext   := 'select * from sajet.sys_emp where emp_id=:b1 and emp_no=:b2';
  my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_text    => my_sqltext,
                                                  bind_list   => v_bind_lst,
                                                  user_name   => 'SAJET',
                                                  scope       => 'COMPREHENSIVE',
                                                  time_limit  => 60,
                                                  task_name   => 'my_sql_tuning_task',
                                                  description => 'Task to tune a query on a specified employee');
END;

(2)执行task

BEGIN
     DBMS_SQLTUNE.EXECUTE_TUNING_TASK( task_name => 'my_sql_tuning_task' );
END;

(3) 查看Task状态


SELECT task_name FROM DBA_ADVISOR_LOG WHERE owner = 'SAJET';

SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'my_sql_tuning_task';

SELECT sofar, totalwork FROM V$ADVISOR_PROGRESS WHERE user_name = 'HR' AND task_
name = ’my_sql_tuning_task’;

(4) 查看结果

SET LONG 1000
SET LONGCHUNKSIZE 1000
SET LINESIZE 100
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( 'my_sql_tuning_task')
FROM DUAL;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值