合理计划 dictionary cache 大小

【数据字典缓冲区(Data Dictionary Cache)  】  

用于存放Oracle系统管理自身所需要的所有信息,包括登录的用户名、用户对象、权限等。

查看 data dictionary 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

SYS @ prod >select  sum(gets),sum(getmisses) ,1-(sum(getmisses)/(sum(gets)+sum(getmisses))) from v$rowcache;

 SUM(GETS) SUM(GETMISSES) 1-(SUM(GETMISSES)/(SUM(GETS)+SUM(GETMISSES)))
---------- -------------- ---------------------------------------------
     82077          15211                                    .843649782

如果data dictionary cache的命中率小于95%,应该适当增加shared pool 的大小

    查看data dictionary cache 的大小
    SYS @ prod >select sum(sharable_mem)/1024/1024 "size: M"  from v$sqlarea;

   size: M
----------
3.23309803

可使用以下语句修改该参数

alter system set shared_pool_size=***M;

原文地址:https://www.cnblogs.com/iyoume2008/p/4690725.html