SQL:addm+sql tuning advisor+sql profile

-----------------------------addmrpt+tunning +sql advisor+sql profile---------------------------------
一、生成addmrpt找出有问题的sql_id
SQLPLUS>@?/rdbms/addmrpt.sql
sql_id=6v7msj6q9ujrz


二、SQL Tuning Advisor
1.
 SQL>var tuning_task varchar2(100);  
 
2.
   DECLARE  
        l_sql_id v$session.prev_sql_id%TYPE;  
      l_tuning_task VARCHAR2(30);  
     BEGIN  
        l_sql_id:='6v7msj6q9ujrz';  
        l_tuning_task := dbms_sqltune.create_tuning_task(sql_id => l_sql_id);  
       :tuning_task:=l_tuning_task;  
        dbms_sqltune.execute_tuning_task(l_tuning_task);  
        dbms_output.put_line(l_tuning_task);  
      END;  
      /       
   任务_74  
   PL/SQL 过程已成功完成。  
   SQL> print tuning_task;  
 
   TUNING_TASK  
   --------------------------------------------------------------------------------------------------------  
    任务_74  


检查优化任务的状态
SELECT task_name,status FROM USER_ADVISOR_TASKS WHERE    task_name =:tuning_task;

查询优化结果:
SET LONG 999999
 set serveroutput on size 999999
 SET LINESIZE 2000
 SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( :tuning_task) from dual ;

删除优化任务
通过调用 dbms_sqltuen.drop_tuning_task 可以删除已经存在的优化任务
exec dbms_sqltune.drop_tuning_task(:tuning_task);

exec dbms_sqltune.drop_tuning_task('任务_2433');
 SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('任务_2433') from dual ;



三、对有需要的execute plan 生成sql profile
accept_sql_profile:
execute dbms_sqltune.accept_sql_profile(task_name => :tuning_task,replace => TRUE,force_match=>true);

drop_sql_profile:
select * from DBA_SQL_PROFILES ;
exec dbms_sqltune.drop_sql_profile('SYS_SQLPROF_01436cac2c3c0000');

查询sql_profile信息:
   select * from DBA_SQL_PROFILES ;

create_sql_plan_baseline:
    execute dbms_sqltune.create_sql_plan_baseline(task_name => 'TASK_4929', owner_name => 'HBJZT', plan_hash_value => 333597355);


drop_sql_plan_baseline:
   DECLARE
    k1 pls_integer;
   begin
    k1 := DBMS_SPM.drop_sql_plan_baseline ( sql_handle=>'SYS_SQL_11bcd50cd51504e9',plan_name=>'SQL_PLAN_13g6p1maja17934f41c8d');
   end;

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值