ORACLE关于cursor

来源:互联网 发布:域名网站收费意味什么 编辑:程序博客网 时间:2024/06/18 03:11

查询哪台主机的服务器上每个数据库用户所占有的游标数:

eg:

<span style="font-size:14px;">select a.value, s.username, s.sid, s.serial#,S.MACHINEfrom v$sesstat a, v$statname b, v$session swhere a.statistic# = b.statistic#  and s.sid=a.sidand 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_textfrom v$open_cursor c, v$sql sqlwhere c.sql_id=sql.sql_id  -- for 9i and earlier use: c.address=sql.addressand 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/


0 0