ITPub博客

首页 > 数据库 > Oracle > aaa

aaa

原创 Oracle 作者:juan025 时间:2019-05-23 12:24:05 0 删除 编辑
          在生产环境的日常监控中,一个非常简单的SQL引发了一个非常差的性能问题
          这个SQL是在后台运行的,其功能是验证数据的唯一性
        分析
          这个SQL非常简单,简单到只有两个表
          表中有exists,exists中又存在GROUP BY分组关键字
          两个表的数据量都在35万左右
          凭经验,瓶颈就在exists中的这个group by关键字
        方案
          将exists子查询改造成join 子查询
          速度从1小时提升到1秒
      心得
        一个小小的exists,居然存在如此大的能量
        不看执行计划也能完成优化
        再次验证了exists是存在性能风险的
      批判
        回顾SQL需要实现的功能
          首先判断du_node表中是否存在重复数据?
            唯一性约束
          其次判断这些重复数据是否都来自du表
            参照性约束
        无论是唯一性约束还是惨遭性约束,难道不能通过数据库的主外键、唯一键来约束吗?
        总想通过程序来控制,而程序的复杂性又保障不了,因此又想到了事后监控

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

上一篇: aaa
下一篇: aaa
请登录后发表评论 登录
全部评论

注册时间:2019-02-13

  • 博文量
    26
  • 访问量
    24861