`
sunxboy
  • 浏览: 2877367 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

学习v$librarycache视图

 
阅读更多

通过查看v$librarycache视图,可以监控library cache的活动情况,进一步衡量share pool设置是否合理。其中RELOADS列,表示对象被重新加载的次数,在一个设置合理的系统里,这个数值应该接近于0,另外,INVALIDATIONS列表示对象失效的次数,对象失效后,这意味着sql必须要被重新解析。

    下述sql查询librarycache的性能状况:

SELECT NAMESPACE, PINS, PINHITS, RELOADS, INVALIDATIONS
  FROM V$LIBRARYCACHE
 ORDER BY NAMESPACE;

输出如下:

NAMESPACE             PINS    PINHITS    RELOADS INVALIDATIONS
--------------- ---------- ---------- ---------- -------------
BODY                  8870       8819          0             0
CLUSTER                393        380          0             0
INDEX                   29          0          0             0
OBJECT                   0          0          0             0
PIPE                 55265      55263          0             0
SQL AREA          21536413   21520516      11204             2
TABLE/PROCEDURE   10775684   10774401          0             0
TRIGGER               1852

1844          0             0

通过上述查询,可以算出library cache的命中率:

Library Cache Hit Ratio = sum(pinhits) / sum(pins)

SUM(PINHITS)/SUM(PINS)
----------------------
            .999466248

另外,对于上述的查询,解释如下:

1.对于SQL AREA来说,共执行了21536413次。

2.其中11,204次执行导致了library cache miss。这就需要对这些sql进行重新解析,因为它们已经被age out。

3.sql有2次失效,这同时导致了library cache miss。

4.命中率为99.94%,这意味着只有0.06%的sql需要重复解析。、

另外一个问题,在什么情况下需要调整share pool的大小?

根据performance tuning上的解释,综合我自己的看法,结论如下:

(1)当V$LIBRARYCACHE.RELOADS的值较大,且应用程序已经很好的使用了绑定变量时,可以考虑调大share pool的值。

(2)当V$LIBRARYCACHE.RELOADS的值很小,且share pool里的free值较大,可以考虑减少share pool的值。通过以下查询,获取share pool的free情况:

SELECT * FROM V$SGASTAT
 WHERE NAME = 'free memory'
   AND POOL = 'shared pool';


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

分享到:
评论

相关推荐

    Oracle的V$性能视图学习大全

    V$LIBRARYCACHE用于评估共享SQL和PL/SQL语句的命中率;V$DB_OBJECT_CACHE用于识别需要固定的数据库对象。 此外,V$视图家族中的V$SQLAREA、V$SQLTEXT、V$SESSION和V$SESS_IO等视图,可以用来查询和分析SQL语句的...

    oracle数据字典关系图

    4. **V$LIBRARYCACHE** - 描述:PL/SQL 库缓存信息。 - 关键字段:`Namespace` - 功能:存储PL/SQL代码块,减少编译时间,提高执行效率。 5. **V$SESSTAT 和 V$SYSSTAT** - 描述:分别代表会话统计信息和系统...

    Oracle数据库的性能优化 (1).pdf

    通过检查V$LIBRARY_CACHE视图的pins和reloads值来评估命中率,若比例接近1,可能需要增加SHARED_POOL_SIZE以优化性能。 数据字典高速缓存(Dictionary Cache)保存了数据库的结构、用户和实体信息。高命中率对系统...

    Oracle管理及常用基础脚本

    - **`v$librarycache`** 视图包含了库缓存的相关信息。 - **`gethitratio`** 表示SQL执行计划的命中率。 **应用场景**: - 监测SQL执行计划的重用情况。 - 优化SQL执行效率。 --- ##### 6. 查询SQL区域详情 (SQL...

    oracle系统参数调优.doc

    在进行参数调优时,应持续监控系统状态,例如使用v$视图(如v$librarycache, v$rowcache, v$datafile, v$filestat, v$dispatcher, v$sysstat等)来收集数据,以便做出科学的决策。同时,务必理解参数的含义和影响,...

    oracle_学习笔记.pdf

    FROM v$librarycache; ``` 上述查询计算了字典缓冲区的获取次数(gets)、未命中的次数(misses)以及未命中率和命中率。 通过这些知识点的掌握,数据库管理员可以有效地管理Oracle数据库,合理地分配资源,...

    SQL优化器相关知识.pptx

    这些视图可以用来查看和分析缓存在Library Cache中的执行计划以及执行计划的统计信息。 在优化过程中,分析数据起着核心作用。DBA通过`ANALYZE`命令收集关于表、索引和列的统计信息,这些信息用于CBO评估执行计划的...

    查看数据库锁和解锁方法

    'IV', 'Library Cache Invalidation', 'LS', 'Log Start or Switch', 'RW', 'Row Wait', 'SQ', 'Sequence Number', 'TE', 'Extend Table', 'TT', 'Temporary Table', 'Unknown') LockType, c.object_name ...

    Oracle的故障诊断及分析方法

    实例是由SGA(System Global Area)和后台进程组成,而SGA中包含了如Redo Log Buffer、Shared Pool、Data Dictionary Cache、Library Cache等关键区域,它们分别负责记录事务日志、存储PL/SQL代码、管理数据字典信息...

    latch相关内容讲解

    Oracle提供了多种工具和视图,如V$LATCH、V$LATCH_CHILDREN等,用于跟踪和诊断Latch的竞争情况。通过对这些工具的分析,DBA可以了解哪些Latch是竞争热点,并据此采取措施优化系统性能。 ### 七、获取Latch信息的...

    基于PHP的虐神百度开源系统v1.0源码.zip

    7. **库(Library)**:自定义函数库,提供通用功能。 8. **辅助函数(Helper)**:包含各种全局辅助方法。 9. **日志(Logs)**:记录系统运行时的信息和错误。 10. **缓存(Cache)**:提高性能的存储区域。 11. *...

    Oracle性能优化求生指南

    - 对于内存相关的性能问题,可以使用v$sysstat和v$process视图来监控内存使用情况。 4. 调整初始化参数: - 根据实际工作负载调整Oracle数据库实例的初始化参数,例如DB_CACHE_SIZE、SHARED_POOL_SIZE等,以优化...

    Conquering Ora Latch

    - **V$视图**:Oracle提供了多种V$视图来监控锁的状态,如V$LATCH和V$LATCH_CHILDREN。 - **专用工具**:还可以使用专门的工具,如SQL*Plus脚本或其他第三方性能监控工具来分析锁的竞争情况。 #### 解决有害的锁...

    Oracle性能优化与故障诊断案例分享

    锁竞争等待事件可以分为好几种,其中包括enq:TX-allocateITLentry、enq:TX-rowlockcontention、cursor:mutexS和librarycachelock等。锁竞争是指当多个用户同时访问相同的数据时,数据库通过锁机制来控制对数据的并发...

    Oracle for Tiptop 系统培训教程

    - **SGA**:包括数据库缓冲区(用于缓存数据文件中的数据块)、字典缓存(存储数据库对象信息)、日志缓冲区(保存redo日志)和共享池(包含library cache和data dictionary cache)。 - **PGA**:每个用户进程有...

    ASP.NET源码——[博客空间]EntLib.com Blog 开源博客平台.zip

    通过研究这个开源博客平台的源码,开发者可以学习到ASP.NET的多种实际应用,加深对ASP.NET框架的理解,同时还能借鉴其设计思路,提高自己的开发技能。对于想要深入了解ASP.NET和Enterprise Library的人来说,EntLib....

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

Global site tag (gtag.js) - Google Analytics