免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2670 | 回复: 3
打印 上一主题 下一主题

oracle version count引起的ora600错误,有没有什么解决办法? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-07 12:36 |只看该作者 |倒序浏览
程序运行发现报ORA600错误,oracle的日志如下:
*** 2009-04-28 21:08:18.576
*** SERVICE NAMEboss) 2009-04-28 21:08:18.575
*** SESSION ID1030.25724) 2009-04-28 21:08:18.575
LIBRARY OBJECT HANDLE: handle=46c6fff90 mutex=46c7000c0(0)
name=
select  book_id,  account_id,  book_item_id,  expire_date,  subscriber_id,  amount,  pay_amount,  status  from
BM.BM_BOOK where  (subscriber_id = :"SYS_B_00" or subscriber_id = :"SYS_B_01" and  account_id = :"SYS_B_02" and
STATUS=:"SYS_B_03" and (EXPIRE_DATE is null or EXPIRE_DATE>  to_date(:"SYS_B_04",:"SYS_B_05")
hash=40d6233a6fe27eb26361572c6d76f40c timestamp=04-28-2009 20:49:53
namespace=CRSR flags=RON/KGHP/TIM/OBS/KEP/PN0/LRG/DBN/[10410045]
kkkk-dddd-llll=0001-0001-0001 lock=N pin=0 latch#=4 hpc=00c6 hlc=00c6
lwt=46c700038[46c700038,46c700038] ltm=46c700048[46c700048,46c700048]
pwt=46c700000[46c700000,46c700000] ptm=46c700010[46c700010,46c700010]
ref=46c700068[46c700068,46c700068] lnd=46c700080[46cc87130,46ce71e68]
  LOCK OWNERS:
      lock     user  session count mode flags
  -------- -------- -------- ----- ---- ------------------------
  4a6db9310 4b1988cc8 4b1988cc8     6 N    [00]
  4a66b6ea8 4b19bc9c0 4b19bc9c0     5 N    [00]
  4a6f78568 4ae9b30d0 4ae9b30d0     6 N    [00]
  4a6edbe68 4b19a8640 4b19a8640    10 N    [00]
  LIBRARY OBJECT: object=49c287788
  type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
  CHILDREN: size=32768

论坛徽章:
0
2 [报告]
发表于 2009-07-07 12:42 |只看该作者
根据查找的oracle资料

为什么会有这么多Version Count?为什么Oracle不能共享这个SQL的cursor?

产生这种情况的条件是:
1. cursor_sharing = similar
2. 收集了列上的histogram
3. SQL中使用到了此列作为条件,并且条件是“等于”
4. 这个SQL是没有绑定变量的

这时候,oracle会认为每个送上来的literal变量都是unsafe的,因此就不重用以前的cursor而新产生一个version。


目前程序里涉及的select很多,全部修改成绑定变量的方式需要很大的工作量,在两个oracle上都出现了这样的事情,版本都是10.0.1的版本。

现在想知道除了修改程序和cursor_sharing外,比如通过升级oracle版本或者其他方式可以解决这个问题吗?
修改程序工作量太大,修改cursor_sharing为exact性能跟不上。

论坛徽章:
0
3 [报告]
发表于 2009-07-07 12:44 |只看该作者
有经验的兄弟请帮忙看下,是否有可行的方法?

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
4 [报告]
发表于 2009-07-07 14:31 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP