Java程序异常 open cussors查询 ORA-01000: maximum open cursors exceeded ORA-06512: at "××××××", line ×× 通

Java程序异常 open cussors查询


ORA-01000: maximum open cursors exceeded
ORA-06512: at "××××××", line ××


通过如下语句进行open cussors查询
select a.value, 
s.username, 
s.sid, 
s.serial# 
from v$sesstat a, 
v$statname b, 
v$session s 
where a.statistic# = b.statistic# 
and s.sid = a.sid and username='TEST' 

and b.name = 'opened cursors current'; 



网上有描述.

 

 案例来自itpubyangtingkun
 “
我们系统的数据量比较大,近200张表,有些表一天要插入1000000条左右的数据。表是使用ER/STDIO设计的,然后直接生成建表的脚本,由于没有设置physical_attributes_clause语句中的建表参数,因此使用了默认的参数。好像是INITIAL10K NEXT 10K PCTFREE 20 PCTUSED 50由于表的存储空间太小,在
 
很短的时间内就会装满,因此Oracle就需要不停为30多张表(数据量较大的)申请空间。于是在程序运行了一段时间后,开始出现ORA-01000:maximum open 
 cursors exceeded
的错误。我将游标大小改到了300,还是出现错误,改到1000以后开始出现了ORA-01001:invalidcursors。再怎么加大open_cursors的数量都
 
无济于事。使用select * from v$open_cursors查询,发现有几百条的INSERT语句游标没有释放。 
 
开始怀疑是程序调用的问题,仔细检查程序没有发现问题。但是发现对某张表进行TRUNCATE操作后,对此表进行插入的游标全部释放,于是开始怀疑是表结构本
 
身的问题。重新设置了建表参数,将数据量最大的表的INITIALNEXT均设置为50M。至今未再出现同样的错误。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值