四、解决共享池争用的最佳手段之一
使用软解析,增高软解析的比例。
五、注意事项
注意观察打开的游标数、缓存的游标数(比如:opened cursors cumulative、opened cursors
current、session cursor cache count)。由于缓存的 Cursor,占用的、不可覆盖的内存并不是太
多,因此通常设置较高的 session_cached_cursors 数,并不会造成 4031共享池内存不足错误。
但还是要注意一下游标数量、所占内存总量。避免游标过多造成 4031。
V$OPEN_CURSOR,当前 Session 缓存的游标,而不是曾经打开的游标。
V$SESSION_CACHED_CURSOR,当前 Session 已经关闭并被缓存的游标。
V$OPEN_CURSOR 中显示的当前 Session 游标缓存中游标,如果要精确查询当前
Session 打开的游标总数,需要从 V$SESSTAT 中查询。
--游标统计
SELECT SUM (a.VALUE) total_cur,
AVG (a.VALUE) avg_cur,
MAX (a.VALUE) max_cur,
s.username,
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'
GROUP BY s.username, s.machine
ORDER BY 1 DESC;
--打开的游标
SELECT a.VALUE,
s.username,
s.sid,
s.serial#