首先决定你要把那些东西固定住,最好在启动实例的时候就固定
select * from v$db_object_cache
where sharable_mem>10000
and (type='PACKAGE' OR TYPE='PACKAGE BODY' OR TYPE='FUNCTION' OR TYPE='PROCEDURE')
AND KEPT='NO'
这个可以查出你想要固定在内存在的大对象
execute dbms_shared_pool.keep('packagename');
这就可以把指定的东西固定在内存中。
清除SHARED POOL怎么做?
SQL> alter system flush shared_pool;
System altered.
SQL>
被固定在内存中的东西不受这个命令影响。
如何调整DATA DICTIONARY CACHE?
与这相关的视图V$ROWCACHE,它包含了关于数据字典的CACHE的重要指标,
SQL> desc v$rowcache;
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
CACHE# NUMBER
TYPE VARCHAR2(11)
SUBORDINATE# NUMBER
PARAMETER VARCHAR2(32)--部件名称
COUNT NUMBER
USAGE NUMBER
FIXED NUMBER
GETS NUMBER--请求次数
GETMISSES NUMBER--非命中率,它要小
SCANS NUMBER
SCANMISSES NUMBER
SCANCOMPLETES NUMBER
MODIFICATIONS NUMBER
FLUSHES NUMBER
DLM_REQUESTS NUMBER
DLM_CONFLICTS NUMBER
DLM_RELEASES NUMBER
SQL>
SQL> select parameter,gets,getmisses from v$rowcache;
PARAMETER GETS GETMISSES
-------------------------------- ---------- ----------
dc_free_extents 0 0
dc_used_extents 0 0
dc_segments 5027 1233
dc_tablespaces 5093 14
dc_tablespace_quotas 4 2
dc_files 0 0
dc_users 98762 32
dc_rollback_segments 2908 21
dc_objects 28854 886
dc_global_oids 91246 129
dc_constraints 0 0
调节的目标就是让GETMISSES变小
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15720542/viewspace-731040/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15720542/viewspace-731040/