当前位置:Gxlcms > 数据库问题 > oracle 基础知识(八)----Library Cache *

oracle 基础知识(八)----Library Cache *

时间:2021-07-01 10:21:17 帮助过:11人阅读

desc v$librarycache Name Null? Type ----------------------------------------- -------- ---------------------------- NAMESPACE VARCHAR2(64) GETS 某个object解析的时候查找的次数(解析阶段) NUMBER GETHITS get命中次数    NUMBER GETHITRATIO 这个值等于gethits/gets     NUMBER PINS object 解析过后被执行的次数(发生在执行阶段)   NUMBER PINHITS pin命中次数               NUMBER PINHITRATIO 这个值等于pinhits/pins NUMBER RELOADS某个object 解析过后被从新加载的次数(需要从新从磁盘读取object),也就是没有被缓存到library cache中,这个通常由于shared pool 过小 NUMBER INVALIDATIONS 某个对象无效,通常由于对象定义被更改,需要从新解析 NUMBER DLM_LOCK_REQUESTS NUMBER DLM_PIN_REQUESTS               NUMBER DLM_PIN_RELEASES              NUMBER DLM_INVALIDATION_REQUESTS          NUMBER DLM_INVALIDATIONS              NUMBER

查看总的library cache pinhitratio 应该大于90%,最理想大于95%

 

SQL> select sum(pinhits)/sum(pins) pinhitratio from v$librarycache;

PINHITRATIO
-----------
  .95701484

 

SQL> select sum(pins)/(sum(pins)+sum(reloads)) reloadhitratio from v$librarycache;

RELOADHITRATIO
--------------
    .995477741

查看reloadhitratio 应该小于1%

 

SQL> select sum(reloads)/sum(pins) from v$librarycache;

SUM(RELOADS)/SUM(PINS)
----------------------
        .004542493

 

查看各个类型的library cache ratio, 看pinhitratio 这一行

 

技术图片
SQL> select namespace,pins pinhits ,pinhitratio from v$librarycache;

NAMESPACE                                PINHITS
---------------------------------------------------------------- ----------
PINHITRATIO
-----------
SQL AREA                                 316416
 .969154531

TABLE/PROCEDURE                               81435
  .94126604

BODY                                      48572
 .998332373


NAMESPACE                                PINHITS
---------------------------------------------------------------- ----------
PINHITRATIO
-----------
TRIGGER                                 228
 .903508772

INDEX                                       2622
 .768878719

CLUSTER                                 668
 .986526946


NAMESPACE                                PINHITS
---------------------------------------------------------------- ----------
PINHITRATIO
-----------
DIRECTORY                                  4
     .5

QUEUE                                      6
 .333333333

RULESET                                   3
 .666666667


NAMESPACE                                PINHITS
---------------------------------------------------------------- ----------
PINHITRATIO
-----------
TEMPORARY TABLE                             808
      0

TEMPORARY INDEX                             302
      0

EDITION                                    1560
 .998717949


NAMESPACE                                PINHITS
---------------------------------------------------------------- ----------
PINHITRATIO
-----------
DBLINK                                      0
      1

OBJECT ID                                  0
      1

SCHEMA                                      0
      1


NAMESPACE                                PINHITS
---------------------------------------------------------------- ----------
PINHITRATIO
-----------
DBINSTANCE                                  0
      1

SQL AREA STATS                                   3347
 .035853003

SQL AREA BUILD                                  0
      1


18 rows selected
View Code

 

查看当前 library cache 的大小

 

技术图片
SQL> select sum(sharable_mem) from v$db_object_cache;

SUM(SHARABLE_MEM)
-----------------
    137677939
View Code

 

查看剩余的 shared pool

 

SQL> select * from v$sgastat where name=free memory and pool=shared pool;

POOL         NAME                 BYTES
------------ -------------------------- ----------
shared pool  free memory         216291184

 

数据库的 library cache hitratio 最好应该在95%以上,sum(reloads)与sum(pins) 的比值应该小于 1%,如果pinhitratio 小于90%,或者reload ratio 大于1% ,而且shared pool 的free memory 很小或者为0,那么可以适当增加shared_pool的大小,检查应用程序代码效率,比如是否使用了绑定变量等等.

 

 

 

 

 

  

 

oracle 基础知识(八)----Library Cache *

标签:就是   ora   request   requests   而且   esc   rabl   ace   效率   

人气教程排行