关于shared pool的深入探讨(三)
基本命令:
ALTER SESSION SET EVENTS 'immediate trace name LIBRARY_CACHE level LL';
其中LL代表Level级别,对于9.2.0及以后版本,不同Level含义如下:
Level =1 ,转储Library cache统计信息
Level =2 ,转储hash table概要
Level =4 ,转储Library cache对象,只包含基本信息
Level =8 ,转储Library cache对象,包含详细信息(包括child references,pin waiters等)
Level =16,增加heap sizes信息
Level =32,增加heap信息
Library cache由一个hash表组成,而hash表是一个由hash buckets组成的数组.
每个hash bucket都是包含library cache handle的一个双向链表。
Library Cache Handle指向Library Cache Object和一个引用列表.
library cache对象进一步分为:依赖表、子表和授权表等
我们看一下library cache的结构:
通过
ALTER SESSION SET EVENTS 'immediate trace name LIBRARY_CACHE level 4'
获得以下输出(这部分信息来自Oracle8i,Trace文件可以从www.eygle.com上找到)
点击这里下载: hsbi_ora_4614.trc
第一部分(等价于Level 1):
LIBRARY CACHE STATISTICS: |
这部分信息也就是v$librarycache中显示的.
第二部分(等价于Level 2中的输出):
LIBRARY CACHE HASH TABLE: size=509 count=354 |
在Oracle8i中,Oracle以一个很长的LIBRARY CACHE HASH TABLE来记录Library Cache的使用情况
"*"代表该Bucket中包含的对象的个数
在以上输出中我们看到Bucket 198中包含四个对象.
我们在第三部分中可以找到bucket 198:
BUCKET 198: |
我们看到这里包含了四个对象.
我们再来看看Oracle9i中的情况:
参考文件: hsjf_ora_15800.trc
LIBRARY CACHE HASH TABLE: size=131072 count=217 |
Oracle9i中通过新的方式记录Library Cache的使用状况.
按不同的Hash Chain Size代表Library Cache中包含不同对象的个数.
0表示Free的Bucket,>20表示包含超过20个对象的Bucket的个数.
从以上列表中我们看到,包含一个对象的Buckets有217个,包含0个对象的Buckets有130855个.
我们来验证一下:
[oracle@jumper udump]$ cat hsjf_ora_15800.trc |grep BUCKET|more |
434/2 = 217,证实了我们的猜想.
通过HASH TABLE算法的改进,Oracle Library Cache管理的效率大大提高.
关于shared pool的深入探讨(三)的更多相关文章
- 关于shared pool的深入探讨(二)【转载】
关于shared pool的深入探讨(二) 作者:eygle |English [转载时请标明出处和作者信息]|[恩墨学院 OCM培训传DBA成功之道]链接:http://www.eygle.co ...
- 关于shared pool的深入探讨(一) 【转载】
关于shared pool的深入探讨(一) 作者:eygle |English [转载时请标明出处和作者信息]|[恩墨学院 OCM培训传DBA成功之道]链接:http://www.eygle.co ...
- 关于shared pool的深入探讨(六)-高Latch竞争案例
研究了几天shared pool,没想到忽然就撞到问题上来了.作为一个案例写出来给大家参考一下吧. 问题起因是公司做短信群发,就是那个18万买的4000字的短信小说(嘘,小声点,我也没看过...).群 ...
- 关于shared pool的深入探讨(五)
Oracle使用两种数据结构来进行shared pool的并发控制:lock 和 pin.Lock比pin具有更高的级别. Lock在handle上获得,在pin一个对象之前,必须首先获得该handl ...
- 关于shared pool的深入探讨(四)
我们进一步来讨论一下shared pool的处理: 先进行相应查询,获得测试数据: [oracle@jumper udump]$ sqlplus "/ as sysdba" SQL ...
- [转载】——故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)
原文链接:https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrlstate=23w4l35u5_4&id=152393 ...
- Shared pool
Shared pool 一.Shared pool的引入 当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程: 1.语法检查(syntax ch ...
- 共享池之六:shared pool latch/ library cache latch /lock pin 简介
latch:library cache --desc v$librarycache; latch:library cache用于保护hash bucket.library cache lock保护HA ...
- 共享内存shared pool (3):Library cache
Shared pool物理层面上由许多内存块(chunck)组成.从逻辑功能划分,Shared pool主要由三部分组成:Library cache,Dictionary cache和Control ...
随机推荐
- 猫猫学iOS 之微博项目实战(5)微博自己定义搜索框searchBar
猫猫分享.必须精品 原创文章.欢迎转载. 转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 用UITextField简单定义一个搜索框 二:调用 ...
- 安装 rbbitMQ redis mongo的三个扩展
#!/bin/bash###install redis extend #########cd /usr/local/srctar fxvz redis-2.2.7.tgzcd redis-2.2.7/ ...
- 解决java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver问题
今天在做项目的时候突然遇到解决java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver问题,知道是j ...
- webpack中引入的path[require('path')]是node.js内置的package,用来处理路径的。
http://www.runoob.com/nodejs/nodejs-path-module.html
- session和cookie的联系与区别
区别: 1.cookie是存放在浏览器上的,session是存放在服务器上的: 2.cookie不安全,别人可以通过分析本地的cookie并进行cookie欺骗,session比cookie安全: 3 ...
- Microsoft Visual C++ 2005 Redistributable---win下安装软件“嘭”的一声报错!
今天下了个MindManager,正准备安装结果出现了如题的错误提示!!! 于是百度/google一下,在权威的微软官网下找到了答案,他妈的,看了之后表示很无奈 If the non unicode ...
- java高精度hdu4043
可以推出公式 f[n]=f[n-1]+f[n-1]*2*(n-1) f[1]=1; 数据量很大,最后又要进行gcd操作,java里竟然自带了一个gcd的函数,为了避免求大数取余和大数除法操作,还是用j ...
- springboot2.1.1 中集成websocket 单元测试异常
单元测试在没有集成websocket之前是好好的,当集成websocket之后就出现了下面的异常(只贴出来关键信息): 2019-01-11 10:05:42 [ERROR] [org.springf ...
- JZOJ.5236【NOIP2017模拟8.7】利普希茨
Description
- App Store App申请审核加速
有没有遇到上线后发现很严重的bug这种情况,修复bug后提交审核又是漫长的等待,那样会把人逼疯的. 估计是为了对应这样的情况,Apple提供有一个加速审核的通道: https://developer. ...