1 OPEN_CURSOR
可以使用sysdba帐号查看当前系统的OPEN_CURSORS的值:
单个Session中同时能够以OPEN状态并存的Session Cursor的总数。
如果超过这个总是,Oracle会报错: ora-1000:maximum open cursors exceeded..
可以从视图V$SYSSTAT 中查到当前所有以open状态存在的Session Cursor的总数。
2、Session_Cached_cursors
参数SESSION_CACHED_CURSORS 用于设定单个Session中能够以Soft Closed状态并存的Session Cursor的总数,即用于设定单个Session能够缓存在PGA中的Session Cursor的总数。
Oracle会用LRU算法来管理这些已经缓存的Session Cursors,所以即便某个Session 以soft Closed状态缓存在PGA中的Session Cursor的总是已经达到了SESSION_CACHED_CURSORS所设置的上限也没有关系,LRU算法依然能够保证那些频繁执行的sql所对应的Session Cursor的缓存命中率高于那些不频繁反复执行的sql。
在Oracle数据库中Session Cursor 能够被缓存在PGA中是有额外条件的,一个Session Cursor能够被缓存在PGA中的必要条件是该Session Cursor 所对应的sql解析和执行的次数要超过3次。