签到成功

知道了

CNDBA社区CNDBA社区

关于sql profile和sql plan baseline的简要说明

2017-03-22 15:52 3970 0 转载 Oracle 性能优化
作者: Expect-乐

本文已获原作者授权转载。文章出自微信公众帐号:老虎刘谈SQL优化

作者介绍:老虎刘,原oracle 研发部门 Real-World Performance TEAM 成员,现在售后部门SSC专职做数据库性能优化,主要为银行、通信、证券、制造等大型企业提供服务。http://www.cndba.cn/Expect-le/article/1822


两个功能(以下简称profile和baseline)都能固定SQL的执行计划:

1、

profile是10g开始提供的功能,baseline是11g开始提供的功能


2、http://www.cndba.cn/Expect-le/article/1822

profile只能固定一个执行计划;

baseline可以固定多个执行计划,如某sql有10个执行计划,可以使用baseline固定使用其中的2个,根据11g adaptive plan的特性,让优化器从这2个计划中自动选择,fixed属性为yes的执行计划优先被选择,可以设置多个计划的fixed=yes


http://www.cndba.cn/Expect-le/article/1822

3、

profile的执行计划可以直接从历史数据(AWR)里面load,baseline需要先把awr的数据load到STS(SQL Tuning Set),才能再load到baseline。所以一般生产系统执行计划突然变差的应急处理,多使用profile。http://www.cndba.cn/Expect-le/article/1822http://www.cndba.cn/Expect-le/article/1822

使用下面两个脚本做应急处理:

coe_load_sql_profile.sqlhttp://www.cndba.cn/Expect-le/article/1822

coe_load_sql_baseline.sql (如果好的执行计划还在cache,使用起来也与上面脚本一样方便)


4、

profile可以对未使用绑定变量的SQL进行执行计划绑定,如:

select xx from t1 where id=1;select xx from t1 where id=2等,

这样的sql一般只能使用profile绑定(选择其中任意一个sql_id,将force_match参数设置为true);而baseline不可以,如果要绑定,需要逐条sql_id进行绑定。如果将系统参数cursor_sharing改成FORCE,这样的SQL也可以使用baseline。


5、

profile和baseline之间不是简单的优先级的问题,如果二者不冲突,则是合并使用;如果冲突,而且baseline可以reproduce(10053显示)时,使用baseline,否则使用profile。


如何验证profile是否生效?

很多时候SQL是在业务里面才能执行,可能还有很多的绑定变量,可以通过explain plan for SQL ,在select * from table(dbms_xplan.display)的note 部分,看看是不是有SQL profile "xxxxxxxxxxxxx" used for this statement 字样,如果有,表明profile已经绑定成功。


http://www.cndba.cn/Expect-le/article/1822

sql_id不一样会不会有影响?

http://www.cndba.cn/Expect-le/article/1822
http://www.cndba.cn/Expect-le/article/1822

profile识别的不是sql_id,而是signature,如果几个sql 只是在大小写、空格数、回车数或tab键有区别,那么这些SQL在系统中的signature就是一样的,可以使用同一个profile。http://www.cndba.cn/Expect-le/article/1822

sql profile sql plan baseline

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1370057次
  • 积分:1957
  • 等级:核心会员
  • 排名:第3名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ