oracle打开游标

时间:2011-05-18 12:05:33

标签: java oracle10g

我们使用的是ORACLE A.S 10g和D.B 10g(10.0.1)。我们在A.S.上维持一个D.B连接池。我们的应用是基于网络的。我们正在关闭java端的结果集和语句。但是我们经常收到超出打开游标的错误。目前正在生产中,我们将限制设置为5000。 我们使用以下查询来检查当前打开的光标

select a.sid, a.value, b.name, b.statistic#
from v$sesstat a, v$statname b
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
and a.sid = 555(any sid number)

'open cursor'的计数正在增加,在我们重启应用服务器之前无法减少。 因为我们正在使用连接池,这就是为什么游标没有关闭? 请指导我们应该怎么做。我们将看看还有哪些方面。

1 个答案:

答案 0 :(得分:0)

找到重犯:

select c.SQL_TEXT, count(*) cnt  
  from v$open_cursor c
  group by c.SQL_TEXT
  order by cnt desc

存储过程/函数返回的Ref游标也需要关闭。