【原】Cache Buffer Chain 第四篇
作者:david_zhang@sh 【转载时请以超链接形式标明文章】
链接:http://www.cnblogs.com/david-zhang-index/p/3873357.html
【测试1】低效的SQL引起的catch buffers chains 锁存器争用
创建测试表
create table cbc_test(id number,name char(100));
insert into cbc_test(id,name) select rownum,object_name from dba_objects;
创建索引
create index cbc_test_idx on cbc_test(id);
创建扫描表的procedure
create or replace procedure cbc_do_select
2 is
3 begin
4 for x in (select /*+ INDEX(cbc_test cbc_test_idx)*/ * from cbc_test where id >= 0) loop
5 null;
6 end loop;
7 end;
8 /
同时打开2000个会话执行读取工作
var job_no number;
begin
for idx in 1..2000 loop
dbms_job.submit(:job_no,'cbc_do_select;');
commit;
end loop;
end;
/
查看整个系统当前等待
SELECT event,
total_waits ,
time_waited
FROM v$session_event
WHERE sid=
(SELECT sid FROM v$mystat WHERE rownum=1
)
ORDER BY 3 DESC;
结果如下:
EVENT TOTAL_WAITS TIME_WAITED
------------------------------ ----------- -----------
SQL*Net message from client 44 46352
library cache lock 202 253
buffer busy waits 56 113
latch: In memory undo latch 43 86
latch: cache buffers chains 33 55
control file sequential read 14154 22
db file sequential read 82 18
events in waitclass Other 6 11
library cache: mutex X 8 10
latch: shared pool 4 5
latch: row cache objects 1 2
SQL*Net message to client 45 0
Disk file operations I/O 4 0
SQL*Net break/reset to client 1 0
log file sync 1 0
根据cache buffers chains事件,找出对应的latch地址
select addr, gets, misses, sleeps
from v$latch_children
where name = 'cache buffers chains'
and misses > 100000
order by 3 desc;
结果:
ADDR GETS MISSES SLEEPS
---------------- ---------- ---------- ----------
0000000124ECCBB0 10485987 5260833 0
0000000124E2B5A8 20671341 9806756 27942
根据ADDR找出关联的文件号和块号
SQL> select FILE#,DBABLK,CLASS,STATE from x$bh where HLADDR='0000000124E2B5A8';
FILE# DBABLK CLASS STATE
---------- ---------- ---------- ----------
4 3585766 1 1
3 9411 20 1
4 3651302 1 1
4 3581428 1 1
6 71918 1 1
6 71918 1 3
6 71918 1 3
6 71918 1 3
6 71918 1 3
6 71918 1 3
3 5073 38 0
根据文件号和块号,找出对象名称,输入6和71918
select owner, segment_name
from dba_extents
where file_id = &p1
and &p2 between block_id and block_id + blocks - 1;
找出的对象名称
OWNER SEGMENT_NAME
------------------------------ ------------------------------
SCOTT EMP_FP_IDX1
待续。。。
【原】Cache Buffer Chain 第四篇的更多相关文章
- 【转】Cache Buffer Chain 第三篇
文章转自:http://oracle.chinaitlab.com/induction/862509.html,文章前部分转载,后部分自己加上的. Oracle数据库只读模式的CACHE BUFFER ...
- 【转】cache buffer chain 第一篇
文章转自:http://www.jydba.net/cache-buffer-chain/ buffer cache的管理有两个重要的数据结构: hash bucket和cache buffer ch ...
- 【转】Cache Buffer Chain 第二篇
文章转自:http://m.bianceng.cn/database/Oracle/201407/42884.htm 测试环境:版本11gR2 SQL> select * from v$vers ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- lnux内核的malloc实现(Oracle的cache buffer影子)
lnux内核的malloc实现(Oracle的cache buffer影子) 本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/artic ...
- (转载) 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
这一篇是从0开始搭建SQL Server AlwaysOn 的第四篇,这一篇开始搭建异地机房节点 注意点1 注意异地节点最好至少有2个AG节点,否则在本地节点进行手动故障转移的时候会出现仲裁警告,提示 ...
- 第四篇 Entity Framework Plus 之 Batch Operations
用 Entity Framework 进行 增,删,改.都是基于Model进行的,且Model都是有状态追踪的.这样Entity Framework才能正常增,删,改. 有时候,要根据某个字段,批量 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)
解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...
随机推荐
- Spring MVC传值乱码解决
在web.xml中进行配置,加入以下代码: <!-- 乱码解决 --> <filter> <filter-name>characterEncodingFilter& ...
- 数据结构与算法系列----AC自己主动机
一:概念 首先简要介绍一下AC自己主动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之中的一个.一个常见的样例就是给出n个单词,再给出一段 ...
- python(12)- 文件处理应用Ⅰ
一.读取文件,打印第三行时后面加入“徐亚平” 程序如下: count=0 with open("test",mode="r",encoding="ut ...
- VMware虚拟机下如何安装一个64位的win7系统
原文地址:http://www.xitongcheng.com/jiaocheng/win7_article_21001.html VMware虚拟机软件可以在一台电脑上运行多个操作系统,一些网友想在 ...
- Laravel建站02--配置Laravel
Laravel项目的根目录下有.env文件,如果没有可以把.env.example改名为.env 这个文件是配置文件,可以把app_key.数据库.redis缓存等配置信息写在这个文件里. 目前5.4 ...
- git 下载与Linux源码安装最新版
win: https://git-for-windows.github.io/ 或 https://git-scm.com/downloads 官网! 源码安装git Git 的工作需要调用 ...
- Android与WebView的插件管理机制
上一篇文章说到,当利用WebViewClient或者WebChromeClient来处理由html页面传过来的请求的时候,都会将相应的服务名称,操作方法和相应的參数数据传给一个叫PluginManag ...
- Android获取手机方向
假设用户开启了设置里的屏幕旋转,Android中处理横竖屏切换,通常的做法是在AndroidManifest.xml中定义android:configChanges="orientation ...
- WPF自定义Popup和弹出菜单
Popup: <StackPanel Grid.Column="0" Grid.Row="6" Orientation="Horizontal& ...
- IDEA eclipse 控制台日志输出到文件
eclipse IDEA