oracle参数-SESSION CACHED CURSORS

SESSION CACHED CURSORS
在会话游标缓冲区中缓存SQL语句的数目

指定要高速缓存的会话游标的数量。对同一 SQL 语句进行多次语法分析后, 它的会话游标将被移到该会话的游标高速缓存中。这样可以缩短语法分析的时间, 因为游标被高速缓存, 无需被重新打开。
 
使用LRU算法对缓存的SQL进行管理
 
如果用户经常执行相同的SQL,可以增加这个值(一般可以从50开始),减少软解析(减少CPU开销)
 
缺省设置是0
0 到根据操作系统而定的值。
 
v$sysstat的'session cursor cache hits' 统计值反映在会话游标缓冲区找到相同的SQL语句(避免软解析 )的次数
select * from v$sysstat where name='session cursor cache hits';
 
SESSION CACHED CURSORS相关的结构存储在UGA中
 
这个参数限制了在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更高的性能.
 
节省解析时间 & 降低cpu资源,固定sql,适合固定周期报表等。
 

你可能感兴趣的:(oracle,session,参数)