暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle性能优化-SQL优化(案例二)

IT小Chen 2021-04-14
651

Oracle性能优化-SQL优化(案例二)

DBOracle 11.2.0.1.0

问题:客户反馈销售订单保存有时很慢。

问题分析:问题重现后,查看后台数据库正在执行的SQL,找到了引起操作慢的SQL,执行计划如下

其中SQL中引用了临时表ic_temp_atpdim0608,每次查询都使用同一个SQL文本,重用同一个执行计划,即使临时表数据每次差距特别大也会使用同一个执行计划,导致SQL效率问题;

解决方案:

改写SQL,需要在代码里将这个耗时SQL语句添加动态随机数的HINT,以避免执行计划重用,提高执行计划准确性(也可以通过添加、修改SQL注释信息comment on column ...生成一次新的执行计划);

例如:

SQL:

select atptable.pk_group pk_group...... from ......;

更改后的SQL

select /*+随机数*/ atptable.pk_group pk_group...... from ......;

可以使用类似如下方式增加随机数;

String sql="select /*+ "+new java.util.Random().nextDouble()+" */ col"

一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

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

评论