优化数据字典高速缓存:
select sum(gets)"Read Requests",sum(getmisses)"Reads not in Memory" from v$rowcache ;
Read Requests Reads not in Memory
------------- -------------------
4764 145
命中率=Read Requests/ Reads not in Memory
若低于85% 应增加 SHARED_POOL_SIZE
优化游标:
可用以下语句检测游标的命中率:
select * from v$session_cursor_cache ;
select * from v$system_cursor_cache ;
优化游标应综合考虑,若打开的游标过多则应用程序需要的内存增大,可能发生共享池内存被换出到虚存从而影响性能。 以下三个INIT.ORA中的参数可影响游标的性能:
CLOSED_CACHED_OPEN_CURSORS 指示oracle当执行commit或rollback语句时,是否显式的关闭游标。如果游标需要反复使用可以设为false,否则应为true从而减少内存占用。
CURSOR_SPACE_FOR_TIME 若为true指示oracle只要在sql共享区中有打开的游标就一直保存该区域,若其值为false oracle可将其换出内存,即使游标仍打开。只有共享池能保存所有打开的游标时才将其设为true。
OPEN CURSORS设定一个会话可同时打开的游标数。
注释:以上增加SGA分配的调整以SGA不被换出实存为限,否则SGA部分换出实存反而降低Oracle性能。