ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【调优】设计问题还是优化问题?

【调优】设计问题还是优化问题?

原创 Linux操作系统 作者:yellowlee 时间:2011-05-24 22:17:03 0 删除 编辑

io100%,定位到一个sql,这个sql在一个1w行的package中,里面涉及到的一个表在这个package中有大量操作,其中典型的sql如下:

UPDATE CIN_GL_ALOC_RESULT_LINE RL
   SET RL.ALLOC_CONTINUED = 1
WHERE EXISTS
(SELECT 'X'
          FROM CIN_GL_ALOC_RESULT_HEADER RH, CIN_GL_ALOC_RESULT_LINE ARL
         WHERE RH.ALOC_BATCH_ID = ARL.ALOC_BATCH_ID
           AND RH.ALOC_VERSION_ID = :B3
           AND RH.GL_PERIOD = :B2
           AND RH.ALOC_PROCESS_ID = :B1
           AND ARL.SRC_LINK_ID = RL.ALOC_LINE_ID
           AND ARL.SRC_SOURCE = 1)

CIN_GL_ALOC_RESULT_LINE初始1000w+,pkg里面删除至几十w,统计信息没有更新,使用exists计划走了filter 和index rang scan,修改为in后走hash join,ok。

起初只是这样优化掉,好像是这个经典的In和exists调整,但是需要考虑的是,这个表在什么时候导入的,又在哪些业务中被大量删除,而过程中也有多次查询,和一些update,这是个财务的程序。年代久远,无人维护,导致目前不可能得到真正优化。这个应该是在设计之时考虑到,而开发的主导者应该要对应用业务和效率问题有深刻的认识,使之在设计之时就得到解决。

 

 

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

请登录后发表评论 登录
全部评论

注册时间:2008-12-27

  • 博文量
    316
  • 访问量
    674206