首页 > 应用开发 > IT综合 > cursor_cache_shared(zt)
session_cached_cursors :一个session可以缓冲多少个cursor。让后续相同的SQL语句不再打开游标,从而避免软解析的过程来提高性能。(绑定变量是解决硬解析的问题),软解析同硬解析一样,比较消耗资源.所以这个参数非常重要。
oracle有一个概念,那就是session cursor cache,中文描述就是有一块内存区域,用来存储关闭了的cursor。当一个cursor关闭之后,oracle会检查这个cursor的 request次数是否超过3次,如果超过了三次,就会放入session cursor cache,这样在下次parse的时候,就可以从session cursor cache中找到这个statement, session cursor cache的管理也是使用LRU。
session_cached_cursors这个参数是控制session cursor cache的大小的。session_cached_cursors定义了session cursor cache中存储的cursor的个数。这个值越大,则会消耗的内存越多。
SQL> show parameter session_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 170
shared_server_sessions integer
SQL> select name,value from v$sysstat where name like '%cursor%';
NAME VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative 3718983
opened cursors current 40
session cursor cache hits 3140587
session cursor cache count 1565690
cursor authentications 4308
SQL> select name,value from v$sysstat where name like '%parse%';
NAME VALUE
---------------------------------------------------------------- ----------
parse time cpu 15549
parse time elapsed 54094
parse count (total) 1888758
parse count (hard) 11087
parse count (failures) 914
SQL> select 3140587/( 3140587+1888758) from dual;
3140587/(3140587+1888758)
-------------------------
.624452488
SQL>
比例越高,性能越好。
session cursor cache hits 和parse count(total) 就是总的parse次数中,在session cursor cache中找到的次数,所占比例越高,性能越好。如果比例比较低,并且有剩余内存的话,可以考虑加大该参数。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8621142/viewspace-919308/ ,如需转载,请注明出处,否则将追究法律责任。