ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 新系统上线,10G 数据库负载持续高

新系统上线,10G 数据库负载持续高

原创 Linux操作系统 作者:tolywang 时间:2010-02-12 10:45:41 0 删除 编辑
Oracle 10g  RAC,  3 NODES
Linux AS 5.3   64bit


最近新上线的程序或procedure中都会有类似下面SQL语句, 以前只有serial_number 字段条件,现在加上了carton_no ,
WIP_D_SN_MASTER  表有300万记录, serial_number及carton_no都有index, 但是serial_number 建立index没有任何
问题, 它的distinct 值很多, 但是carton_no 95% 的值是 'N/A' , 其他很少一部分才有值, procdure调用这个SQL, 传入
的参数同时赋给 serial_numbe 及carton_no ,  我们测试代入 serial_number 的真实值, 可以走serial_number 的index ,
下面是我们在OEM中抓到的对应的这个语句,可惜参数只是 :V00001 及 :V00002 ,  按照procedure写法,这两个参数值是
一样的, 但是看到的这个SQL的执行计划却是full table scan 。



AWR报告中也报这个语句执行需要 1 秒,但是我们手工代入serial_number 值,运行非常快 ,只需要几十毫秒 。 奇怪了。


SELECT BATCH_NO, WIP_D_SN_MASTER.ROWID FROM WIP_D_SN_MASTER  
WHERE (SERIAL_NUMBER = :V00001 OR CARTON_NO = :V00002) AND ROWNUM = 1  ;

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

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14696249