ITPub博客

首页 > 数据库 > Oracle > Oracle性能优化-SQL优化(案例二)

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

原创 Oracle 作者:chenoracle 时间:2020-02-17 21:08:04 0 删除 编辑

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博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-2675954/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle 11g OCP、Oracle 11g OCM、OCMU 用户组成员,微信公众号"IT小Chen"

注册时间:2014-08-05

  • 博文量
    452
  • 访问量
    909340