通过自定义hints实现sql profile-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1028358
  • 博文数量: 145
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3510
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 13:00
个人简介

about me:oracle ace,optimistic,passionate and harmonious. focus on oracle programming,peformance tuning,db design, j2ee,linux/aix,web2.0 tech,etc

文章分类

全部博文(145)

文章存档

2023年(28)

2022年(43)

2020年(62)

2014年(3)

2013年(9)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2023-05-04 09:02:24

如果有多个执行计划,可以使用coe脚本快速绑定,如果没有多个执行计划,如果可以用hints构造更好的执行计划,则可以使用自定义hints实现sql profile,步骤如下:

1.用hints写好sql执行,然后执行
explain plan for
select .... 新sql;


2.查询对应的outline,也就是下面要绑定的q'[那些

select * from table(dbms_xplan.display(null,null,' outline'));


3.将上面的outline取出来,放到ue里,用列模式,前面加q'[ 后面加]',   注意把{banned}最佳后一条的逗号去掉,然后按照下面的方式拼好语句,注意sql_id,profile名字修改,执行
执行完毕后看原始语句的执行计划部分是否绑定成功


declare
v_hints sys.sqlprof_attr;
v_sql_id clob;
begin
v_hints := sys.sqlprof_attr
(
   q'[begin_outline_data]',
   q'[use_nl(@"sel$3" "f"@"sel$3")]',
   q'[use_nl(@"sel$3" "h"@"sel$3")]',
   q'[use_nl(@"sel$3" "e"@"sel$3")]',
   q'[use_nl(@"sel$3" "a"@"sel$3")]',
   q'[use_nl(@"sel$3" "b"@"sel$3")]',
   q'[leading(@"sel$3" "g"@"sel$3" "b"@"sel$3" "a"@"sel$3" "e"@"sel$3" "h"@"sel$3" "f"@"sel$3")]',
    。。。
   q'[ignore_optim_embedded_hints]',
   q'[end_outline_data]'
);
select sql_text into v_sql_id from gv$sql where sql_id='&sql_id' and rownum=1;
dbms_sqltune.import_sql_profile(v_sql_id,v_hints,'profile_&sql_id',force_match => true);
end;
/  

 



阅读(359) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图