查询哪台主机的服务器上每个数据库用户所占有的游标数:
eg:
<span style="font-size:14px;">select a.value, s.username, s.sid, s.serial#,S.MACHINE
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic# and s.sid=a.sid
and b.name = 'opened cursors current'
and s.MACHINE='Lenovo-WZ'
order by a.value desc;
</span>
查询游标的使用状态详情:
eg:
<span style="font-size:14px;">select c.user_name, c.sid, C.*, sql.sql_text
from v$open_cursor c, v$sql sql
where c.sql_id=sql.sql_id -- for 9i and earlier use: c.address=sql.address
and c.sid=967;</span>
在使用dbcp配置连接池时:
<property name="poolPreparedStatements" value="false" />
默认值是false,默认情况下表示用到的 PreparedStatements 不缓存到连接池中;若设置为true,用到的PreparedStatements则会缓存到连接池中。
若使用PreparedStatements:
Oracle游标对应的是PreparedStatement,而不是ResultSet。
并且MaxOpenPreparedStatements的设置应该小于Oracle的Open_Cursor的数值。
如果PreparedStatement没有关闭,则Oracle那端的游标就没有释放。
参考:http://blog.itpub.net/29254281/viewspace-1064007/