SQL Profile一次SQL优化

使用SQL Profile之前的执行计划统计

该语句不算复杂,有6张表的左外关联+count查询。采集时间段为物理读最高的一条SQL。
逻辑读430多万,物理读20多万。
从执行计划来看,leg表(与上一篇为同一张表,3000多万条记录)进行了全表扫描。从where条件来看(如下):
where 1=1
     and leg0_.STATUS<>'UN_ACTIVE'
     and leg0_.PLATFORM_ID=16073;
leg表的两个字段是有自己单独的索引同时也包含在一个复合索引当中。
对于status查询得知目前只有10个不同的值,选择性不是很高。platform_id也只有300多不同的值,似乎全表扫描也是合理的。

自己先将status不等式改为in,有一定的效果但不明显,执行计划没变,物理读下降接近一半:


对于系统的一些更改,不知道其影响情况。于是使用sql profile,看能否起到作用。
创建一个分析任务
variable sql_ans9d61tq6djv varchar2(2000);     
exec :sql_ans9d61tq6djv:=dbms_sqltune.create_tuning_task(sql_id=>'ans9d61tq6djv',time_limit=>600,task_name=>'ans9d61tq6djv_task');
执行
exec dbms_sqltune.execute_tuning_task(task_name=>'ans9d61tq6djv_task');
查询执行情况
select a.owner,b.task_id,b.task_name,a.created from dba_advisor_tasks a,dba_advisor_log b where a.task_id=b.task_id and a.task_name='ans9d61tq6djv_task';

OWNER     TASK_ID  TASK_NAME               CREATED
---------       ----------    -----------                --------- 
SYS            87509    ans9d61tq6djv_task    10-JUN-15
查看优化任务报告
select dbms_sqltune.report_tuning_task('ans9d61tq6djv_task') from dual;

DBMS_SQLTUNE.REPORT_TUNING_TASK('ANS9D61TQ6DJV_TASK')
--------------------------------------------------------------------------------
GENERAL INFORMATION SECTION
----------------------------------------------------
接受建议sql,创建profile (看不到生成的报告,就创建了profile,我自己也是醉了
exec dbms_sqltune.accept_sql_profile(task_name=>'ans9d61tq6djv_task',task_owner => 'SYS', replace => TRUE);
profile信息
select name ,created from dba_sql_profiles;

NAME                           CREATED
------------------------------ ------------
SYS_SQLPROF_0153772f6123c000   10-JUN-15

之后如果不再使用,删除Profile
exec dbms_sqltune.drop_sql_profile(name => 'SYS_SQLPROF_0153772f6123c000'); 
删除优化任务
exec dbms_sqltune.drop_tuning_task(task_name => 'ans9d61tq6djv_task');
之后的执行计划如下:


昨天创建profile,一会儿查看该语句是否还在"
榜"上。
问题:
看查看生的profile报告时,什么内容也看不到 。不知道什么原因,希望有知道的还请告知,先谢谢了。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26831783/viewspace-1695193/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26831783/viewspace-1695193/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值