|
原则
正确设置open_cursors和'session_cached_cursors' 可以减少sql解析,提高系统性能,那么,如何正确设置'session_cached_cursors' 这个参数呢?我们可以把握下面的原则:
1、'session_cached_cursors' 数量要小于open_cursor
2、要考虑共享池的大小
3、使用下面的sql判断'session_cached_cursors' 的使用情况。如果使用率为100%则增大这个参数值。
1.查询是否需要修改
复制代码
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')
结果如图:
2.修改方法
alter system set session_cached_cursors = 100;
alter system set open_cursors = 500;
ps
出现ora-02096错误使用以下方法:
alter system set backup_tape_io_slaves = false;
会报相应的错误, 因为backup_tape_io_slaves属性issys_modifiable的值为deferred;
alter system set backup_tape_io_slaves = false deferred;
加上deferred就不会报错了, 但是表示这次修改对当前会话不发生作用, 在以后打开的会话中起作用, 故它有"推迟"影响的效果.
|
|