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。
分享到:
相关推荐
Oracle 参数 open_cursors 与 session_cached_cursors 详解 Oracle 数据库中,open_cursors 和 session_cached_cursors 是两个重要的参数,它们对 Oracle 的运行性能产生了直接的影响。本文将详细解释这两个参数的...
sql学习 session_cached_cursors.sql
这些参数包括 session_cached_cursors、session_max_open_files、sessions、license_max_sessions、license_sessions_warning 和 processes。 在解决这个问题之前,我们需要了解这些参数的含义: * session_cached...
为了优化执行计划,我们可以使用绑定变量、减少硬解析、配置 session_cached_cursors、高速缓存游标等方法。 绑定变量 使用绑定变量可以减少硬解析的数量。例如,在 SQL 语句中使用绑定变量 `:empno` 代替硬编码的...
- 调整`session_cached_cursors`的值:`SQL> alter system set session_cached_cursors=100 scope=spfile;` ##### 2. 修改Oracle最大连接数的方法 - **查看当前设置**:`SQL> show parameter processes;` - **调整...
同时,监测session_clilshl_cache_hits以调整session_cached_cursors和open_cursors参数。数据字典缓冲区的命中率同样重要,通过V$cache视图检查并调整分配内存。 除此之外,文章还提到了SQL级别的调整,这是四级...
- **监控和调整UGA**:虽然UGA大小通常由Oracle自动管理,但在高并发环境下,可能需要手动干预,如通过`session_cached_cursors`参数控制游标的缓存数量。 - **使用共享服务器模式或专用服务器模式**:根据系统需求...
* `SESSION_CACHED_CURSORS`:设置会话缓存游标的数量,以提高数据库的性能。 * `AUDIT_TRAIL`:设置审计跟踪,以确保数据库的安全。 * `RECYCLEBIN`:设置回收站,以避免回收站过大。 * `LOG_ARCHIVE_DEST_1`:设置...
3. `session_cached_cursors`:这个参数指定Oracle服务器为每个会话缓存的预编译游标数量。缓存游标有助于提高性能,因为它减少了编译SQL语句的次数。然而,它也会占用`OPEN_CURSORS`的配额。 `cursor_space_for_...
session_cached_cursors integer 0 session_max_open_files integer 10 sessions integer 225 shared_server_sessions integer ``` **作用:** - 显示当前数据库实例中的 session 相关参数设置。 ##### 2. 修改 ...
Shared Pool Statistics提供了关于共享池的信息,包括共享池的使用情况、游标数量(如SESSION_CACHED_CURSORS、OPEN_CURSORS)等。共享池的管理对于减少SQL语句解析和提高系统响应时间至关重要。 ##### 6. SQL ...
绑定变量相关的参数,例如cursor_sharing(光标共享)、OPEN_CURSORS(打开光标数)、SESSION_CACHED_CURSORS(会话缓存光标数)也是优化的一部分。 优化器相关的参数,包括optimizer_index_caching(索引缓存优化...
16. **SESSION_CACHED_CURSORS**:预分配的游标数,减少打开和关闭游标的开销。 17. **CURSOR_SPACE_FOR_TIME**:控制游标空间的生命周期,以提高性能。 18. **SGA_MAX_SIZE**:设置系统全局区域(SGA)的最大大小...
为了优化数据库性能,应尽量减少硬解析,提高SQL语句的复用率,使用绑定变量,以及适当调整SESSION_CACHED_CURSORS参数,减少latch竞争,提升系统可扩展性。此外,创建合适的索引也是优化的关键,索引的选择性和基数...
比如,通过调整OPEN_CURSORS参数限制打开的游标数量,减少SESSION_CACHED_CURSORS以节省内存,或者启用CURSOR_SPACE_FOR_TIME以根据使用频率决定是否保存游标。 此外,监控和使用报告如V$SGASTAT可以帮助识别SGA各...
此外,通过调整`session_cached_cursors`参数,可以控制会话缓存的游标数量,使得对同一SQL语句的多次分析能够更快地完成,减少重新打开游标的时间。 对于选择性的精确估计,Oracle提供了直方图(Histograms)功能...
- **会话缓存的游标(`Session_cached_cursors`)**:默认50,根据并发会话数调整。 - **预分配SGA(`pre_page_sga`)**:设置为true,有助于提高性能。 4. **Oracle 9i的新参数** 对于已经开始使用Oracle 9i的...
6. **session_cached_cursors** 和 **open_cursors**: 控制会话缓存的游标数和允许打开的游标数,优化游标管理可以减少磁盘I/O并提升性能。 7. **open_links** 和 **open_links_per_instance**: 设定单个会话可打开...
当Shared Pool碎片化严重时,可能导致ORA-04031错误,表现为SQL语句无法获取足够的内存空间,此时可能需要调整SQL语句的复用策略、监控open_cursors和session_cached_cursors参数,以及定期进行Shared Pool的清理。...