ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 急急急!cursor_sharing=force碰到ora-00937, ora-00979

急急急!cursor_sharing=force碰到ora-00937, ora-00979

原创 Linux操作系统 作者:tolywang 时间:2011-12-01 09:22:15 0 删除 编辑

Oracle 9.2.0.8.0  ,  Linux AS  4.5    64bit   

因为是接手其他单位的一套Oracle9i 系统,  程序写得非常差,   几乎70% 都没有使用绑定变量,   还出现过一次
ORA-04031 ,   虽然找出了很多运行次数较高的SQL 让开发的修改,    但是因为他们也是接手别人的程序,  感觉
不愿意改 (害怕修改完了上线出问题,  怪在自己头上) ,   反复要求DBA想办法,   加 Mem, CPU 来解决 。

即使加硬件配置也需要时间,  生产系统程序还是时不时反映慢,   大家压力比较大,  没有办法了才将 cursor_sharing
值由原来的exact 修改为 force ,  数据库在CPU方面的使用得到了很大的改善,   慢的情况基本消失,  但是没高兴半天,  
2个比较重要的程序因为有group by 语句而报错 :  ora-00937  ,   ora-00979 .    没有办法又修改为 exact (还好
是可以动态修改的).   


在修改回来之前也想了其他办法,   因为这些group by 的SQL语句在Toad等工具中是可以执行的,  就是在程序中不行,
是和特定接口有关系的,   所以想到要将这些语句放到 procedure 中在DB端执行或者在SQL语句前面加入
alter session   set   cursor_sharing = exact  ;     或者让他们改为其他接口 (比如OLEDB, ODAC) 测试一下 。

但是2个程序中居然还有一个程序没有拿到源代码,    .   

万能的Puber ,  是否有其他解决方法  ?     改回来了不知道啥时候系统又得慢了 .......  



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

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

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13170149