coe_xfr_sql_profile.sql脚本可以根据sql_id及sql_plan_hash生成绑定执行计划的sql文件,执行该文件后即可绑定执行计划,
应用场景:1、数据库特定sql历史上有几个执行计划,有个执行计划高效,我们打算绑定该执行计划,即可利用该脚本进行绑定
2、数据库版本升级后或者迁移后,表及索引结构未变化,sql执行计划改变了,也可通过该方式进行绑定
1. 执行绑定执行计划脚本,生产绑定执行计划SQL
start /路径/COE_XFR_SQL_PROFILE.sql SQLID PLAN_HASH_VALUE
示例:
sqlplus>start /home/oracle/COE_XFR_SQL_PROFILE.sql amuabd0ga64kj 3680033016
2. 运行绑定执行计划SQL
sqlplus>@coe_xfr_sql_profile_amuabd0ga64kj_3680033016.sql
查看是绑定信息
select name,signature,sql_text,created,type,status,force_matching from dba_sql_profiles;
查看执行计划
SELECT b.name,to_char(d.sql_text) sql_text, extractvalue(value(h),'.') as hints
FROM dba_sql_profiles d,SYS.SQLOBJ$DATA A,
SYS.SQLOBJ$ B,
TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE(A.COMP_DATA),'/outline_data/hint'))) h
where a.signature = b.signature
and a.category = b.category
and a.obj_type = b.obj_type
and a.plan_id = b.plan_id
and a.signature=d.signature
and D.name = 'CPK9JSG2QT52R_1357081020';F5查看执行计划会有如下 SQL profile信息即绑定成功
Note
-----
- SQL profile "CPK9JSG2QT52R_1357081020" used for this statement
–删除上面绑定执行计划
begin
DBMS_SQLTUNE.DROP_SQL_PROFILE(name =>'CPK9JSG2QT52R_1357081020');
end;
/可以在A库上调用 coe_xfr_sql_profile.sql生成执行计划,在B库上绑定该执行计划
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




