通过查看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
分享到:
相关推荐
V$LIBRARYCACHE用于评估共享SQL和PL/SQL语句的命中率;V$DB_OBJECT_CACHE用于识别需要固定的数据库对象。 此外,V$视图家族中的V$SQLAREA、V$SQLTEXT、V$SESSION和V$SESS_IO等视图,可以用来查询和分析SQL语句的...
4. **V$LIBRARYCACHE** - 描述:PL/SQL 库缓存信息。 - 关键字段:`Namespace` - 功能:存储PL/SQL代码块,减少编译时间,提高执行效率。 5. **V$SESSTAT 和 V$SYSSTAT** - 描述:分别代表会话统计信息和系统...
SELECT gethitratio FROM v$librarycache WHERE namespace = 'SQLAREA'; ``` **知识点**: - **`v$librarycache`** 视图包含了库缓存的相关信息。 - **`gethitratio`** 表示SQL执行计划的命中率。 **应用场景**: ...
在进行参数调优时,应持续监控系统状态,例如使用v$视图(如v$librarycache, v$rowcache, v$datafile, v$filestat, v$dispatcher, v$sysstat等)来收集数据,以便做出科学的决策。同时,务必理解参数的含义和影响,...
FROM v$librarycache; ``` 上述查询计算了字典缓冲区的获取次数(gets)、未命中的次数(misses)以及未命中率和命中率。 通过这些知识点的掌握,数据库管理员可以有效地管理Oracle数据库,合理地分配资源,...
通过检查V$LIBRARY_CACHE视图的pins和reloads值来评估命中率,若比例接近1,可能需要增加SHARED_POOL_SIZE以优化性能。 数据字典高速缓存(Dictionary Cache)保存了数据库的结构、用户和实体信息。高命中率对系统...
这些视图可以用来查看和分析缓存在Library Cache中的执行计划以及执行计划的统计信息。 在优化过程中,分析数据起着核心作用。DBA通过`ANALYZE`命令收集关于表、索引和列的统计信息,这些信息用于CBO评估执行计划的...
实例是由SGA(System Global Area)和后台进程组成,而SGA中包含了如Redo Log Buffer、Shared Pool、Data Dictionary Cache、Library Cache等关键区域,它们分别负责记录事务日志、存储PL/SQL代码、管理数据字典信息...
- 若未找到,则在library cache中进行匹配。 3. **读取数据**: - 根据执行计划,通过`cache buffer chain latch`锁定数据块。 - 如果数据块不存在,则寻找空闲块或产生`free buffer waits`。 - 从磁盘读取数据到...
- **LIBRARY CACHE LATCH**:保护共享池中的库缓存。 - **ROW CACHE OBJECTS LATCH**:保护行缓存对象。 - **REDO ALLOCATION LATCH**:控制重做日志缓冲区分配。 - **REDO LOG BUFFER LATCH**:保护重做日志缓冲区...
在这种状态下,任何状态向量v的概率仅由其相对于所有其他可能状态向量的能量来确定。 #### 玻尔兹曼受限机 玻尔兹曼受限机是对原始玻尔兹曼机的改进版本,它增加了更多的约束条件以提高学习效率。主要特点是: - 每...
在CMake中,`add_executable`和`add_library`命令用于定义可执行文件和库,`target_include_directories`、`target_link_libraries`等命令用于指定头文件路径和链接依赖。此外,`find_package`可以查找并配置第三方...
- **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 ...
3. 共享池(Shared Pool):包括库缓存(Library Cache)和数据字典缓存(Data Dictionary Cache),分别用于缓存最近使用的SQL语句和PL/SQL代码,以及数据字典信息; 4. 重做日志缓冲区(Redo Log Buffer):用来...
为了展示这一过程,文档中将使用缓存缓冲链锁(Cache Buffer Chain Latch)和库缓存锁(Library Cache Latch)作为例子,并引用了一些公开可用的锁分析脚本。 #### 如何了解Oracle锁机制 在深入了解Oracle锁机制...
7. **库(Library)**:自定义函数库,提供通用功能。 8. **辅助函数(Helper)**:包含各种全局辅助方法。 9. **日志(Logs)**:记录系统运行时的信息和错误。 10. **缓存(Cache)**:提高性能的存储区域。 11. *...
长时间卡在 successfully opened dynamic library libcudnn .so.7 官方 issue:tensorflow/tensor2tensor#1643 大概率是CUDA、cuDNN、tensorflow的版本匹配问题 使用 nvcc -V 查看 cuda 版本,查看是否匹配 我...