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


    一,介绍

      Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,procedure,trigger)的信息,以及这些对象所依赖的table,index,view等对象的信息。

    二,库缓存

      01,存放的单元

       Library存放的信息单元都叫做对象,这些对象可以分为两类:

          (1) 存储对象: 

          (2) 过渡对象:

    三,查看命中率

    SQL> 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的大小,检查应用程序代码效率,比如是否使用了绑定变量等等.

      

  • 相关阅读:
    递归删除文件夹目录及文件的方法
    委托delegate与Dictionary实现action选择器
    java.lang.NoClassDefFoundError: org/springframework/boot/bind/PropertiesConfigurationFactory
    pom文件找不都
    No qualifying bean of type '***' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:
    记录一次sql查询union的优化
    countDownLatch问题为0 记录
    mapper文件一次空指针异常记录
    导出excel按照指定格式
    java导出pdf功能记录
  • 原文地址:https://www.cnblogs.com/kingle-study/p/10444084.html
Copyright © 2020-2023  润新知