

测试SQL的执行计划变更是否由具体某个优化器特性(由隐藏的opt参数,或者fix control控制),从而制定针对性的优化手段。优化器参数有很多,如果手工测试,非常繁琐。利用脚本循环,可以一次测试完几百个特性的开关,找到对执行计划有影响的开关。
运行方式:
sqlplus as sysdba
set serveroutput on size unlimited
set linesize 333
spool r.txt
declare
sqlstr varchar2(3000):='select * from dba_segments'; --替换要测试的sql
begin
DBMS_WWJ_OPT.analyze_sql_optfeature(sqlstr,'12.2.0.1to11.2.0.4');
--选择合适的版本 目前最新修改为支持 12.2.0.1to11.2.0.4, 19.5.0.0to11.2.0.4, 另外还支持 9.2.0.8 to 11.2.0.3的远古版本
end;
/
部署:
在sys用户安装附件中的package
说明:
发生了变化

没有发现变化的,忽略

实现原理,在PLSQL中提前定义所有变化的,在session级别进行开关,然后对SQL做变更前后的explain plan的文本对比。

最后请各位专家发送邮件获取源代码。
valen.wang#??????.com

文章转载自西区O记重案实录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




