
latch:shared pool
发布日期:2021-05-14 18:13:00
浏览次数:18
分类:精选文章
本文共 1308 字,大约阅读时间需要 4 分钟。
数据库版本
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production PL/SQL Release 12.2.0.1.0 - Production CORE 12.2.0.1.0 - Production创建对象
drop table HDP.T; create table hdp.t as select * from all_objects;
确定HDP.T表第一行所在的文件和数据块号
select DBMS_ROWID.ROWID_RELATIVE_FNO(rowid), DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) from hdp.t where rownum=1 -- rowid: 7,19043
寻找HDP.T表第一行LATCH所在的地址
select * from x$bh where file#=7 and dbablk=19043 -- 000000006C6F0F00
获取缓冲区链中的LATCH对象及其相关信息
select b.OBJECT_ID, a.file#, b.OWNER, b.OBJECT_NAME, a.DBABLK from x$bh a, dba_objects b where a.obj=b.object_id and a.hladdr='000000006C6F0F00'
通过.Channel%20name类查询Latch相关 Informationen
select sid, serial#, event, p1raw, p2raw from v$session where wait_class!='Idle';
上述脚本用于测试Latch竞争情况。在Oracle 12c中,Latch等待事件的名称可能与之前的版本有所不同。
使用DBMS_ROWID.ROWID_CREATE函数获取Latch所在的RowID
select DBMS_ROWID.ROWID_CREATE(1,18,1,16502,1) from dual;
修改的代码示例
以下代码用于测试Latch竞争
代码1
declare number r_count; begin for i in 1..1000000 loop select count(*) into r_count from sys.obj$ where rowid='AAAAASAABAAAEB2AAB'; end loop; end; /
代码2
declare number r_count; begin for i in 1..1000000 loop select count(*) into r_count from hdp.t where rownum=1; end loop; end; /
测试Latch竞争的效果
通过以上代码,可以观察Oracle database在Latch资源下的竞争情况。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月27日 12时04分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2019-03-07
解决数据库报ORA-02289:序列不存在错误
2019-03-07
map[]和map.at()取值之间的区别
2019-03-08
成功解决升级virtualenv报错问题
2019-03-08
【SQLI-Lab】靶场搭建
2019-03-08
【Bootstrap5】精细学习记录
2019-03-08
LeetCode197.打家劫舍
2019-03-08
A simple problem HDU-2522 【数学技巧】
2019-03-08
Struts2-从值栈获取list集合数据(三种方式)
2019-03-08
vscode中快速生成vue模板
2019-03-08
参考图像
2019-03-09
设计模式(18)——中介者模式
2019-03-09
用JavaScript实现希尔排序
2019-03-09
推荐几篇近期必看的视觉综述,含GAN、Transformer、人脸超分辨、遥感等
2019-03-09
BUU-MISC-认真你就输了
2019-03-09
BUU-MISC-caesar
2019-03-09