查询oracle sql运行计划,一个非常重要的观点--dba_hist_sql_plan

该文章的作者给予了极大的帮助长老枯荣,为了表达我的谢意。

这适用于oracle db版本号oracle 10g或者更高的版本号.

 

之所以说这种看法是非常重要的,因为观点是有之一awrsqrpt报告没有在。就是 filter_predicates列。

 

SELECT plan_hash_value,

       TO_CHAR(RAWTOHEX(child_address)),
       TO_NUMBER(child_number),
       id,
       LPAD(' ', DEPTH) || operation operation,
       options,
       object_owner,
       object_name,
       optimizer,
       cost,
       access_predicates,
       filter_predicates
  FROM V$SQL_PLAN
 WHERE sql_id = ' bkcyk7bf380t6'
 ORDER BY 1, 3, 2, 4;
 
重点关注optimizer列,filter_predicates列。

 

 
若是该sql不在shared pool中时,改为运行例如以下的sql:
 
set linesize 500
set pagesize 500
col plan_hash_value format 9999999999
col id format 999999
col operation format a30
col options format a15
col object_owner format a15
col object_name format a20
col optimizer format a15
col cost format 9999999999
col access_predicates format a15
col filter_predicates format a15

 SELECT plan_hash_value,
         id,
         LPAD (' ', DEPTH) || operation operation,
         options,
         object_owner,
         object_name,
         optimizer,
         cost,
         access_predicates,
         filter_predicates
    FROM dba_hist_sql_plan
   WHERE sql_id = ' fahv8x6ngrb50'
ORDER BY plan_hash_value, id;
 
重点关注filter_predicates列。

--这一列能帮助推断不走索引的原因。

这一列的查询结果若是为null,那就是正常的。若是不为null,那就须要额外关注不为空的原因。例如以下图所看到的:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值