入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

关于OPEN_CURSORS和SESSION_CACHE_CURSORS参数值的设定

创建时间:2016-06-23 投稿人: 浏览次数:633
SQL> SELECT MAX(A.VALUE) AS HIGHEST_OPEN_CUR, P.VALUE AS MAX_OPEN_CUR
     FROM V$SESSTAT A, V$STATNAME B, V$PARAMETER P
    WHERE A.STATISTIC# = B.STATISTIC#
      AND B.NAME = "opened cursors current"
      AND P.NAME = "open_cursors"
    GROUP BY P.VALUE;


HIGHEST_OPEN_CUR MAX_OPEN_CUR
---------------- --------------------
              28 300
HIGHEST_ OPEN CUR是实际打开的cursors 的最大值,MAX_OPEN_ CUR是参数Open_cursors的设定值,如果二者太接近,甚至触发ORA一01000错误,那么你就应该调大参数Open_cursors的设定值。如果问题依旧没有解决,盲目增大Open_cursors也是不对的,这个时候你得检查应用程序的代码是否合理,比如说应用程序是否打开了游标,却没有在它完成工作后没有及时关闭。


SELECT A.VALUE, S.USERNAME, S.SID, S.SERIAL#
  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 curent";


PARAMETER              VALUE      USAGE  
---------------------- ---------- -----  
session_cached_cursors    20       100%  
open_cursors             300        16% 




session cursor cache hits 与 parse count (total)的比值:session cursor cache hits就是系统在高速缓存区中找到相应cursors的次数,parse count(total)就是总的解析次数,二者比值越高,性能越好。如果比例比较低,并且有较多剩余内存的话,可以考虑加大该参数。
session_cached_cursor 这个参数限制了在pga内session cursor cache list的长度,session cursor cache list是一条双向的lru链表,当一个session打算关闭一个cursor时,如果这个cursor的parse count超过3次,那么这个cursor将会被加到session cursor cache list的MRU端.当一个session打算parse一个sql时,它会先去pga内搜索session cursor cache list,如果找到那么会把这个cursor脱离list,然后当关闭的时候再把这个cursor加到MRU端.session_cached_cursor提供了快速软分析的功能,提供了比soft parse更高的性能. 阅读更多
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像