在Maclean看到如下的帖子,描述SESSION_CACHED_CURSORS游标存放在PGA
http://www.askmaclean.com/archives/sql%E8%A7%A3%E6%9E%90%E6%B5%81%E7%A8%8B.html
翻阅了11g Tuning Guid和MOS,感觉里面描述session cursor因该是在shared pool的。
只是没有想到怎样用实验去验证,还请教一下Maclean
How the Session Cursor Cache Works
A session cursorrepresents an instantiation of a shared child cursor, which is stored
in the shared pool, for a specific session. Each session cursor stores a reference to a
child cursor that it has instantiated.
Oracle Database checks the library cache to determine whether more than three parse
requests have been issued on a given statement. If a cursor has been closed three times,
then Oracle Database assumes that the session cursor associated with the statement
should be cached and moves the cursor into the session cursor cache.
另外Init.ora Parameter "SESSION_CACHED_CURSORS" Reference Note (文档 ID 30804.1):
SESSION_CACHED_CURSORS that can be set that will help in situations where a user repeatedly parses the same statements. This can occur in many applications including FORMS based application if users often switch between forms. Every time a user switches to a new form all the sql statements opened for the old form will be closed. The session_cached_cursors parameter will cause closed cursors to be cached within the session so that a subsequent call to parse the statement will bypass the parse phase. This is similar to HOLD_CURSORS in the precompilers. One thing to be careful about is that if this parameter is set to a high value, the amount of fragmentation in the shared pool may be increased.
http://www.askmaclean.com/archives/sql%E8%A7%A3%E6%9E%90%E6%B5%81%E7%A8%8B.html
翻阅了11g Tuning Guid和MOS,感觉里面描述session cursor因该是在shared pool的。
只是没有想到怎样用实验去验证,还请教一下Maclean
How the Session Cursor Cache Works
A session cursorrepresents an instantiation of a shared child cursor, which is stored
in the shared pool, for a specific session. Each session cursor stores a reference to a
child cursor that it has instantiated.
Oracle Database checks the library cache to determine whether more than three parse
requests have been issued on a given statement. If a cursor has been closed three times,
then Oracle Database assumes that the session cursor associated with the statement
should be cached and moves the cursor into the session cursor cache.
另外Init.ora Parameter "SESSION_CACHED_CURSORS" Reference Note (文档 ID 30804.1):
SESSION_CACHED_CURSORS that can be set that will help in situations where a user repeatedly parses the same statements. This can occur in many applications including FORMS based application if users often switch between forms. Every time a user switches to a new form all the sql statements opened for the old form will be closed. The session_cached_cursors parameter will cause closed cursors to be cached within the session so that a subsequent call to parse the statement will bypass the parse phase. This is similar to HOLD_CURSORS in the precompilers. One thing to be careful about is that if this parameter is set to a high value, the amount of fragmentation in the shared pool may be increased.









