首页 » 数据库 » Oracle » ORACLE 硬件解析高的问题解决--修改SESSION_CACHED_CURSORS游标缓存参数

ORACLE 硬件解析高的问题解决--修改SESSION_CACHED_CURSORS游标缓存参数

 

Oracle AWR报告中,数据库硬解析偏高,SQL执行过程中硬解析占比过高,影响SQL执行效率,该问题多数是 session_cached_cursors游标缓存不足引起的,该参数默认值为50,可以通过如下语句查询可以看到使用率已经100%,同时,建议根据实际业务增大游标缓存。

查询参数设置

SQL> show parameter session_cached_cursors;
NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

session_cached_cursors               integer     50

查看当前使用情况

SQL> SELECT 'session_cached_cursors' PARAMETER,
LPAD(VALUE, 5) VALUE,
DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE, '990') || '%') USAGE
FROM (SELECT MAX(S.VALUE) USED
FROM V$STATNAME N, V$SESSTAT S
WHERE N.NAME = 'session cursor cache count'
AND S.STATISTIC# = N.STATISTIC#),
(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors')
UNION ALL
SELECT 'open_cursors',
LPAD(VALUE, 5),
TO_CHAR(100 * USED / VALUE, '990') || '%'
FROM (SELECT MAX(SUM(S.VALUE)) USED
FROM V$STATNAME N, V$SESSTAT S
WHERE N.NAME IN
('opened cursors current', 'session cursor cache count')
AND S.STATISTIC# = N.STATISTIC#
GROUP BY S.SID),
(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors');

修改session_cached_cursors参数

alter system set session_cached_cursors=400 scope=spfile;

重启数据库

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

查看

SQL> show parameter session_cached_cursors;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
session_cached_cursors               integer     400

原文链接:ORACLE 硬件解析高的问题解决--修改SESSION_CACHED_CURSORS游标缓存参数,转载请注明来源!

2