一,介绍

  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

查看当前 library cache 的大小

SQL> select sum(sharable_mem) from v$db_object_cache;

SUM(SHARABLE_MEM)
-----------------
137677939

查看剩余的 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 *的更多相关文章

  1. Oracle基础知识汇总一

    Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...

  2. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

  3. oracle 基础知识(七)----动态性能视图

    一,动态性能视图介绍 动态性能视图属于数据字典,系统管理员用户 SYS 可以访问它们.在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关.虽然这些视图很像普通的数据库表,但它们不允许用户直 ...

  4. Oracle Shared Pool之Library Cache

    1. Shared Pool组成 Shared Pool由许多区间(Extent)组成,这些区间又由多个连续的内存块(Chunk)组成,这些内存块大小不一.从逻辑功能角度,Shared pool主要包 ...

  5. Oracle 基础知识入门

    前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...

  6. oracle 基础知识(九)----SQL解析

    一,解析过程 二,硬解析,软解析,软软解析 01,硬解析 将SQL语句通过监听器发送到Oracle时, 会触发一个Server process生成,来对该客户进程服务.Server process得到 ...

  7. oracle基础知识(六)----spfile与pfile

    一, 认识参数文件      Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...

  8. oracle 基础知识(四) 构成

    一, oracle服务 一个oracle 服务由一个oracle 实例和一个oracle数据库组成. oracle = instance + database 总体概念: 二, oracle 实例 0 ...

  9. 2008-03-18 22:58 oracle基础知识小结

    oracle 数据类型: 字段类型                 中文说明                                                  限制条件         ...

随机推荐

  1. Linq学习<二>

    http://www.cnblogs.com/wyqlijin/archive/2011/02/25/1964934.html 这位仁兄写的比较高深,建议大家看看 一: 这一篇以一个数据类为例,操作数 ...

  2. git手动解决内容冲突

    <span style="font-size:18px;">git checkout -b lab4 origin/lab4 git merge lab3</sp ...

  3. jquery中attr和prop的区别(转)

    在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: ...

  4. <%@ include > 与< jsp:include >

    include指令表示在JSP编译时插入一个包含文本或者代码的文件,把文件中的文本静态地包含过去.也就是说,会把被包含的页面拷贝到包含的页面中指令所在的位置. 语法格式:<%@ include ...

  5. angular 父组件调用子组件

    import { Component, OnInit, ViewChild } from '@angular/core'; @Component({ selector: 'app-child', te ...

  6. SQLServer如何在批量插入后,获取批量插入的自增列的值

    解决方法如下: Use the OUTPUT functionality to grab all the INSERTED Id back into a table. 使用output 功能获取所有插 ...

  7. 「HNOI2013」切糕

    题目链接 戳我 \(Solution\) 对于这道题,我们首先来看看没有\(D\)这个约束的该如何做. 我们考虑构造最小割模型. 其实直接贪心就好了,选出每条路径上的最小值就好了(路径就是将每层的同一 ...

  8. 多态的作用-游戏编程展示------新标准c++程序设计

    游戏软件的开发最能体现面向对象设计方法的优势.游戏中的人物.道具.建筑物.场景等都是很直观的对象,游戏运行的过程就是这些对象相互作用的过程.每个对象都有自己的属性和方法,不同对象也可能有共同的属性和方 ...

  9. Jmeter_录制HTTPS

    [环境] Jmeter版本:Jmeter3.2: JDK版本:JDK1.8 [配置] [1]添加“线程组.Http信息头管理器.httpCookie管理器.HTTP代理服务器”: [2]设置浏览器的“ ...

  10. vs更改项目文件夹名称

    改完之后会提示找不到.csproj,用文档工具打开.sln文件,把里面找.csproj的路径修改一下就好了