《课程笔记 | Oracle DBA武林秘籍》4-升级引发性能问题
一.常见思路
由于升级引发的性能问题,常见思路如下:
1.分别对比原库和新库该SQL对应的执行计划。
2.对比两个执行计划,找到差异部分或最耗时的部分。
3.分析执行计划差异原因,根据原因尝试解决问题。
二.10053查看执行计划中如何改写sql
可以通过10053事件对比查看原库和新库对同一SQL是如何进行改写,如何计算cost的
--原库和新库都执行
alter session set tracefile_identifier='10053';
ALTER SESSION SET EVENTS='10053 trace name context forever, level 1';
select count(*) from v_cjc_01;
ALTER SESSION SET EVENTS '10053 trace name context off';
select value from v$diag_info where name='Default Trace File';
查看生成的trace文件:
搜索关键字 Final query after transformations
对比原库和新库的SQL改写部分。
三.sql tuning advisor查看建议
SQL>
DECLARE
my_task_name VARCHAR2(30);
BEGIN
my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id ='gzjy5nh7g0sfs',
scope =>'COMPREHENSIVE',
time_limit => 3600,
task_name =>'cjc_sql_tuing_task',
description => 'SQL TUNE TEST');
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'cjc_sql_tuing_task');
END;
/
SELECT status FROM DBA_ADVISOR_TASKS WHERE task_name = 'cjc_sql_tuing_task';
SET LONG 10000
SET LONGCHUNKSIZE 1000
SET LINESIZE 300
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('cjc_sql_tuing_task') FROM DUAL;
四.降级OPTIMIZER_FEATURES_ENABLE
当比较紧急,其他办法尝试不能解决问题,临时解决方案可以先降级OPTIMIZER_FEATURES_ENABLE
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 19.0.0
noncdb_compatible boolean FALSE
--hint中添加提示 降级
insert /*+append OPTIMIZER_FEATURES_ENABLE('11.2.0.4')*/ into T_XX_CJC01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




