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


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个程序中居然还有一个程序没有拿到源代码,   37.gif  .   

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



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

转载于:http://blog.itpub.net/35489/viewspace-712496/

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值