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

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

  

原文地址:https://www.cnblogs.com/kingle-study/p/10444084.html

时间: 2024-11-06 03:04:14

oracle 基础知识(八)----Library Cache *的相关文章

【转载:Oracle基础知识】Oracle数据库体系结构

先来看张直观的图:                                            oracle 11g 体系结构图 理解Oracle体系结构要充分理解三个概念:数据库(database),数据库实例(instance),会话(session),一定不要把这三个概念弄混. 数据库的概念 (A)    物理存储结构由数据文件.控制文件.重做日志文件组成: 1.       数据文件(datafile) select * from dba_data_files; 数据文件包括存

Oracle基础知识笔记(10) 约束

大清早打开vs2008,出现这么诡异的错, 删了一个dll的就好了.如图 Oracle基础知识笔记(10) 约束

Oracle基础知识笔记(11) 建表、更新、查询综合练习

有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓名和所属系别不能为空: 积分要第为空值,要么为6,4

Oracle 11g下重现library cache lock等待事件

从下面的例子中可以看到,在生产数据库中对象的重新编译会导致library cache lock,所以应该尽量避免在业务高峰期编译对象.如果是package或过程中存在复杂的依赖关系就极易导致library cache lock的出现,所以在应用开发的过程中,也应该注意这方面的问题. session1: SQL> select * from v$version; BANNER -------------------------------------------------------------

oracle 基础知识(四) 构成

一, oracle服务 一个oracle 服务由一个oracle 实例和一个oracle数据库组成. oracle = instance + database 总体概念: 二, oracle 实例 01,实例? 实例是一种访问oracle数据库的方式,始终打开一个方式,并且只打开一个数据库.它包括内存结构(SGA)和一系列后台进程(background process),两者合起来称为一个oracle实例. Oracle instance = sga+ background Process 02

Oracle基础知识

一.oracle安装过程略 二.sys用户和system用户 (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限 默认密码是change_oninstall (2)system用户是管理操作员,权限也很大,具有sysoper角色,但没有create database的权限,默认密码为manager (3)一般对数据库的维护,使用system用户登录就足够了 三.oracle的启动 所谓的启动是指启动oracle的实例,即OracleServic

[转载]Oracle基础知识

一.oracle安装过程略 二.sys用户和system用户 (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限 默认密码是change_oninstall (2)system用户是管理操作员,权限也很大,具有sysoper角色,但没有create database的权限,默认密码为manager (3)一般对数据库的维护,使用system用户登录就足够了 三.oracle的启动 所谓的启动是指启动oracle的实例,即OracleServic

【基础知识八】集成学习

难点:如何产生"好而不同"的个体学习器:"好而不同":"准确性"和"多样性" 一.个体与集成 构建并结合多个学习器来完成学习任务 集成:结果通过投票法voting产生,"少数服从多数" 获得整体性能提升要求个体学习器:好而不同 1)个体学习器有一定的"准确性" 2)学习器间具有差异 集成学习的错误率: 假设基学习器的误差相互独立,随着集成中个体分类器数目T的增大,集成的错误率将指数级下降

oracle——基础知识

一.Oracle中的数据类型 1.字符串类型.如:char.nchar.varchar2.nvarchar2.2.数值类型.如:int.number(p,s).integer.smallint.3.日期类型.如:date.interval.timestamp.4.PL/SQL类型.如:pls_integer.binary_integer.binary_double(10g).binary_float(10g).boolean.plsql类型是不能在sql环境中使用的,比如建表时.5.自定义类型.