`

v$librarycache 学习

 
阅读更多

通过查看v$librarycache视图,可以监控library cache的活动情况,进一步衡量share pool设置是否合理。其中GETS,PINS比较复杂,目前还不能理解。http://www.itpub.net/thread-498204-1-1.html

GETHITS列,表示GET命中的次数;

PINHITS列,表示PIN命中的次数;

PINHITRATIO列,这个值等于PINHITS / PINS;

RELOADS列,表示 某个object 解析过后被重新加载的次数(需要重新从磁盘读取object),也就是没有被缓存 到library cache中,这个通常由于shared pool 过小 ,在一个设置合理的系统里,这个数值应该接近于0;

INVALIDATIONS列,表示对象失效的次数,对象失效后,这意味着sql必须要被重新解析。 

 

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




 
 对这个查询的解释如下:

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

2,其中26次查询导致了library cache miss,即要进行reload,因为它们已经被age out。

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

 

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

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

 

 

 

SUM(PINHITS)/SUM(PINS)

----------------------

            .847688465

 

查看reloadhitratio 应该小于1%

 

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

 

 

SUM(RELOADS)/SUM(PINS)

----------------------

            .004114098

查看当前 library cache 的大小

select sum(sharable_mem) from v$db_object_cache;

 

 

SUM(SHARABLE_MEM)

-----------------

         29058308

 

查看剩余的 shared pool

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

 

 

POOL         NAME                            BYTES

------------ -------------------------- ----------

shared pool  free memory                  35636448


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

  • 大小: 20.4 KB
分享到:
评论

相关推荐

    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管理及常用基础脚本

    SELECT gethitratio FROM v$librarycache WHERE namespace = 'SQLAREA'; ``` **知识点**: - **`v$librarycache`** 视图包含了库缓存的相关信息。 - **`gethitratio`** 表示SQL执行计划的命中率。 **应用场景**: ...

    oracle系统参数调优.doc

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

    oracle_学习笔记.pdf

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

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

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

    SQL优化器相关知识.pptx

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

    Oracle的故障诊断及分析方法

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

    Oracle原理学习笔记.docx

    - 若未找到,则在library cache中进行匹配。 3. **读取数据**: - 根据执行计划,通过`cache buffer chain latch`锁定数据块。 - 如果数据块不存在,则寻找空闲块或产生`free buffer waits`。 - 从磁盘读取数据到...

    latch相关内容讲解

    - **LIBRARY CACHE LATCH**:保护共享池中的库缓存。 - **ROW CACHE OBJECTS LATCH**:保护行缓存对象。 - **REDO ALLOCATION LATCH**:控制重做日志缓冲区分配。 - **REDO LOG BUFFER LATCH**:保护重做日志缓冲区...

    Les machines de Boltzmann

    在这种状态下,任何状态向量v的概率仅由其相对于所有其他可能状态向量的能量来确定。 #### 玻尔兹曼受限机 玻尔兹曼受限机是对原始玻尔兹曼机的改进版本,它增加了更多的约束条件以提高学习效率。主要特点是: - 每...

    CMake_v3.11.3.rar

    在CMake中,`add_executable`和`add_library`命令用于定义可执行文件和库,`target_include_directories`、`target_link_libraries`等命令用于指定头文件路径和链接依赖。此外,`find_package`可以查找并配置第三方...

    Oracle 认证学习笔记

    - **SQL 语句缓存**:SQL 语句的解析结果会被存储在共享池中的 Library Cache 中,以便重复使用。 - **数据字典缓存**:数据字典信息也会被缓存在共享池中,以加快查询速度。 - **重做日志缓冲区 (Redo Buffers)*...

    查看数据库锁和解锁方法

    '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性能优化求生指南

    3. 共享池(Shared Pool):包括库缓存(Library Cache)和数据字典缓存(Data Dictionary Cache),分别用于缓存最近使用的SQL语句和PL/SQL代码,以及数据字典信息; 4. 重做日志缓冲区(Redo Log Buffer):用来...

    Conquering Ora Latch

    为了展示这一过程,文档中将使用缓存缓冲链锁(Cache Buffer Chain Latch)和库缓存锁(Library Cache Latch)作为例子,并引用了一些公开可用的锁分析脚本。 #### 如何了解Oracle锁机制 在深入了解Oracle锁机制...

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

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

    基于深度学习的说话人识别系统python源码+运行说明+预训练模型(高分毕业设计).zip

    长时间卡在 successfully opened dynamic library libcudnn .so.7 官方 issue:tensorflow/tensor2tensor#1643 大概率是CUDA、cuDNN、tensorflow的版本匹配问题 使用 nvcc -V 查看 cuda 版本,查看是否匹配 我...

Global site tag (gtag.js) - Google Analytics