使用sql_tuning_advisor对问题sql进行诊断


--获得sql_id
SELECT * FROM V$SQL WHERE UPPER(SQL_TEXT) LIKE '%WITH%'
AND UPPER(SQL_TEXT) LIKE '%TCNT%'

--创建执行优化任务
DECLARE
my_task_name VARCHAR2(30);
BEGIN
   my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(
                     sql_id => 'crfjrqx3tnr9z',
                     scope => 'COMPREHENSIVE',
                     time_limit => 60,
                     task_name => 'test_tuning_task');
   DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'test_tuning_task');
END;
/


--查看任务状态
SELECT task_name,status FROM USER_ADVISOR_TASKS WHERE task_name ='test_tuning_task';

--查询结果
set long 888888
set serveroutput on size 888888
set lines 100
 
SELECT dbms_sqltune.report_tuning_task('test_tuning_task') FROM dual;

--删除优化任务
 exec dbms_sqltune.drop_tuning_task('test_tuning_task');

 

PS:根据反馈结果进行操作,这里一般都是一些收集统计信息,加索引,绑定sql_profier等的建议操作。

具体优化方式还要根据sql的实际情况来,这里的建议只能作为参考,是否生效还是需要自己判断。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值