Oracle
性能优化
-SQL
优化
(
案例四
)
环境:
DB:Oracle 11.2.0.1.0
问题:
ERP
薪资发放节点计算时间耗时
较长,需要15
分钟左右;
问题原因:
有两个SQL
执行特别慢
第一个查询WA_CACU_DATA
的
SQL
,在
plsql
中执行特别快,返回
0
条,怀疑某些堆表被当成临时表使用,导致执行计划有问题,手动删除和锁定这些表的统计信息后查询
SQL
速度有明显提高;
第二个更新WA_CACU_DATA
的
SQL
,第一次执行快,第二次执行慢,执行计划不稳定,禁用基数反馈
(_optimizer_use_feedback)
后速度正常;
解决过程:
问题重现时,查看主要慢在两个SQL
,一个
select wa_cacu_data ...
,另一个
update ...;
一
耗时长的查询SQL
如下
执行计划如下:
解决方案:
在plsql
中执行特别快,返回
0
条,怀疑某些堆表被当成临时表使用,导致执行计划有问题,手动删除和锁定这些表的统计信息后查询
SQL
速度有明显提高;
SQL> exec dbms_stats.delete_table_stats(
‘
cjc
’
,
’
tbm_period
’
);
SQL> exec dbms_stats.delete_table_stats(
‘
cjc
’
,
’
org_adminorg
’
);
SQL> exec dbms_stats.delete_table_stats(
‘
cjc
’
,
’
org_hrorg
’
);
SQL> exec dbms_stats.lock_table_stats(
‘
cjc
’
,
’
tbm_period
’
);
SQL> exec dbms_stats.lock_table_stats(
‘
cjc
’
,
’
org_adminorg
’
);
SQL> exec dbms_stats.lock_table_stats(
‘
cjc
’
,
’
org_hrorg
’
);
二:耗时长的update
语句
抓取完整sql
单独执行时,发现第一次执行很快,第二次执行特别慢,并且第一次和第二次生成的执行计划不一样,第二次执行计划带有“
cardinality feedback used for this statement
”,怀疑和
oracle 11g
基数反馈特性有关,导致执行计划不稳定,
SQL
执行效率低。
解决方案:
session
级别禁用基数反馈后,多次手动执行
SQL
,速度稳定变快了。
alter session set "_optimizer_use_feedback"=false;
临时解决办法可以考虑系统级别禁用基数反馈,或研发更改代码,在sql
级别增加
hint
禁用基数反馈。
alter
system
set "_optimizer_use_feedback"=false;
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

Oracle性能优化-SQL优化(案例四)
来源:这里教程网
时间:2026-03-03 15:04:00
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle性能优化-SQL优化(案例四)
Oracle性能优化-SQL优化(案例四)
26-03-03 - rman_换设备迁移恢复2
rman_换设备迁移恢复2
26-03-03 - sql的四种链接方式内连接、外连接、全连接
sql的四种链接方式内连接、外连接、全连接
26-03-03 - Oracle 11G RAC集群安装(3)——安装Oracle
Oracle 11G RAC集群安装(3)——安装Oracle
26-03-03 - Oracle日常问题-数据库无法启动(案例二)
Oracle日常问题-数据库无法启动(案例二)
26-03-03 - Oracle日常问题处理ORA-04031
Oracle日常问题处理ORA-04031
26-03-03 - Oracle日常问题-数据库无法启动(案例一)
Oracle日常问题-数据库无法启动(案例一)
26-03-03 - ACE(04):我的 2020 年 ACE 计划
ACE(04):我的 2020 年 ACE 计划
26-03-03 - ORA-07445: exception encountered: core dump [kglic0()+774]
- 2020 从新开始:你应该知道的Oracle认证新变化
2020 从新开始:你应该知道的Oracle认证新变化
26-03-03
