首页 > 数据库 > Oracle > Oracle性能优化-SQL优化(案例二)
Oracle 性能优化 -SQL 优化 ( 案例二 )
DB : Oracle 11.2.0.1.0
问题: 客户反馈 销售订单保存 有时很慢。
问题分析: 问题重现后,查看后台数据库正在执行的SQL ,找到了引起操作慢的 SQL ,执行计划如下。


其中 SQL 中引用了临时表 ic_temp_atpdim0608 ,每次查询都使用同一个 SQL 文本, 重用同一个执行计划, 即使临时表数据每次差距特别大也会使用同一个执行计划,导致SQL 效率问题;
解决方案:
改写SQL ,需要在代码里将 这个耗时SQL 语句添加动态随机数的 HINT ,以避免执行计划重用,提高执行计划准确性;
例如:
原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",共同学习,共同成长!!!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29785807/viewspace-2675954/ ,如需转载,请注明出处,否则将追究法律责任。