Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66659
  • 博文数量: 6
  • 博客积分: 2045
  • 博客等级: 大尉
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-06 17:40
文章分类

全部博文(6)

文章存档

2008年(6)

我的朋友
最近访客

分类: Oracle

2008-03-05 16:10:44

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的个数。这个值越大,则会消耗的内存越多。
另外检查这个参数是否设置的合理,可以从两个statistic来检查。

SQL> select name,value from v$sysstat where name like '%cursor%';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative                                             16439
opened cursors current                                                   55
session cursor cache hits                                              8944
session cursor cache count                                              101
cursor authentications                                                  353

SQL> select name,value from v$sysstat where name like '%parse%';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
parse time cpu                                                            0
parse time elapsed                                                        0
parse count (total)                                                   17211
parse count (hard)                                                     1128
parse count (failures)                                                    2

session cursor cache hits 和parse count(total) 就是总的parse次数中,在session cursor cache中找到的次数,所占比例越高,性能越好。如果比例比较低,并且有剩余内存的话,可以考虑加大该参数。

Oracle 9i及以前,该参数缺省是0,10G上缺省是20。

阅读(1236) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~