[20210803]使用那个shared pool latch(补充).txt --//前一阵子写了http://blog.itpub.net/267265/viewspace-2780256/=>[20210708]使用那个shared pool latch.txt --//里面提到sql语句使用的shared pool latch.是 sql语句的hash_value % bucket_size % _kghdsidx_count +1 , --//我是通过例子以及gdb来验证,有人质疑不会是巧合,当然我测试前确实是在猜测. --//实际上可以通过一个简单的方法验证我的判断是对的. 1.环境: SYS@127.0.0.1:9014/ywdb> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYS@127.0.0.1:9014/ywdb> @ hide _kgl_bucket_count NAME DESCRIPTION DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD ----------------- ------------------------------------------------------------------ ------------- ------------- ------------ ----- --------- _kgl_bucket_count Library cache hash table bucket count (2^_kgl_bucket_count * 256) TRUE 9 9 FALSE FALSE SYS@127.0.0.1:9014/ywdb> @ hide idx_count NAME DESCRIPTION DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD --------------- ------------------ ------------- ------------- ------------ ----- --------- _kghdsidx_count max kghdsidx count TRUE 7 7 FALSE FALSE SYS@127.0.0.1:9014/ywdb> @ tix New tracefile_identifier = /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0001.trc SYS@127.0.0.1:9014/ywdb> oradebug setmypid Statement processed. SYS@127.0.0.1:9014/ywdb> oradebug dump library_cache 4; Statement processed. --//生产系统,转储有点慢... SYS@127.0.0.1:9014/ywdb> @ tix New tracefile_identifier = /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0002.trc SYS@127.0.0.1:9014/ywdb> oradebug dump heapdump 2; Statement processed. # du -sm /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_000*.trc 215 /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0001.trc 197 /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0002.trc # egrep "HEAP DUMP|KGLH0\^|SQLA\^" /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0002.trc >| aa.txt 2.分析aa.txt: --//单独读出 HEAP DUMP heap name="sga heap(1,0)" 与 HEAP DUMP heap name="sga heap(2,0)" 之间的内容. --//保存为a0.txt # grep ds=0x a0.txt >| a1.txt # sed '1,$s/^.*\^//;1,$s/\".*$//' a1.txt | sort | uniq >| a2.txt */ head -5 a2.txt 10017bdc 1003249 1003249 10210a5e 10439dee --//编辑修改如下,注意小写换成大写. # cat a2.txt | tr '[a-z]' '[A-Z]' > a3.txt --//开头加入ibase=16 # head -5 a3.txt ibase=16 10017BDC % 20000 % 7 +1 1003249 % 20000 % 7 +1 1003249 % 20000 % 7 +1 10210A5E % 20000 % 7 +1 --//简单说明一下我采用16进制计算,131072 = 0x20000. # cat a3.txt | bc -q | uniq -c 3197 1 --//你可以发现全部结果都是1的.说明我的判断是正确的,其它一样验证. --//补充说明: Chunk 5f1000f70 sz= 4096 recreate "KGLH0^10210a5e " latch=(nil) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Chunk 5f1001f70 sz= 4096 recreate "SQLA^347151dc " latch=(nil) Chunk 5f1002f70 sz= 4096 freeable "SQLA^105a0126 " ds=0x59f9aa4a8 --//我发现下划线的不再这个范围. --//10210a5e = 270600798 --//270600798 %131072 %7+1 = 4 --//所以我计算的实际上包含ds=0x那些行. $ egrep "HEAP DUMP|10210a5e" /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0002.trc HEAP DUMP heap name="sga heap" desc=0x60001190 HEAP DUMP heap name="sga heap(1,0)" desc=0x6005cf30 Chunk 5f1000f70 sz= 4096 recreate "KGLH0^10210a5e " latch=(nil) Chunk 5f1000f70 sz= 4096 recreate "KGLH0^10210a5e " latch=(nil) HEAP DUMP heap name="sga heap(2,0)" desc=0x600667f8 HEAP DUMP heap name="sga heap(3,0)" desc=0x600700c0 HEAP DUMP heap name="sga heap(4,0)" desc=0x60079988 HEAP DUMP heap name="sga heap(5,0)" desc=0x60083250 HEAP DUMP heap name="sga heap(6,0)" desc=0x6008cb18 HEAP DUMP heap name="sga heap(7,0)" desc=0x600963e0 # egrep "HEAP DUMP|347151dc" /u01/app/oracle/diag/rdbms/ywdb/ywdb1/trace/ywdb1_ora_3733_0002.trc HEAP DUMP heap name="sga heap" desc=0x60001190 HEAP DUMP heap name="sga heap(1,0)" desc=0x6005cf30 Chunk 59ec223f0 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5b877a1b0 sz= 4096 recreate "KGLH0^347151dc " latch=(nil) Chunk 5b8f98f88 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5bbb1e0b8 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5d49f15f0 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5d5165070 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5d53da328 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5d6778ba8 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5f1001f70 sz= 4096 recreate "SQLA^347151dc " latch=(nil) Chunk 5f2d78ce8 sz= 4096 freeable "KGLH0^347151dc " ds=0x5d6464cb8 Chunk 611b2da28 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 61238b8e0 sz= 4096 recreate "KGLH0^347151dc " latch=(nil) Chunk 6136fbba8 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 613bab998 sz= 4096 freeable "SQLA^347151dc " ds=0x61238c058 Chunk 5f1001f70 sz= 4096 recreate "SQLA^347151dc " latch=(nil) Chunk 5b877a1b0 sz= 4096 recreate "KGLH0^347151dc " latch=(nil) HEAP DUMP heap name="sga heap(2,0)" desc=0x600667f8 HEAP DUMP heap name="sga heap(3,0)" desc=0x600700c0 HEAP DUMP heap name="sga heap(4,0)" desc=0x60079988 HEAP DUMP heap name="sga heap(5,0)" desc=0x60083250 HEAP DUMP heap name="sga heap(6,0)" desc=0x6008cb18 HEAP DUMP heap name="sga heap(7,0)" desc=0x600963e0 --//我计算了HEAP DUMP heap name="sga heap(7,0)" desc=0x600963e0以下的内容. # cat b3.txt | bc -q | uniq -c 2826 7
[20210803]使用那个shared pool latch(补充).txt
来源:这里教程网
时间:2026-03-03 16:51:25
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 关于obsolete child cursor问题
关于obsolete child cursor问题
26-03-03 - SQL的reload以及Invalidations
SQL的reload以及Invalidations
26-03-03 - Oracle学习、进阶资料合集(含教程、笔记、题库下载与学习方法分享)
Oracle学习、进阶资料合集(含教程、笔记、题库下载与学习方法分享)
26-03-03 - Cursor Cache Hit Ratio超过100%
Cursor Cache Hit Ratio超过100%
26-03-03 - 卫生系统中招勒索病毒的应对措施和紧急恢复办法
卫生系统中招勒索病毒的应对措施和紧急恢复办法
26-03-03 - 影响抖音视频上热门最重要的因素是什么?有什么小技巧?
影响抖音视频上热门最重要的因素是什么?有什么小技巧?
26-03-03 - 面板给不了京东方新故事
面板给不了京东方新故事
26-03-03 - 不用投抖加,免费也能上热门推荐?3个技巧悄悄告诉你
不用投抖加,免费也能上热门推荐?3个技巧悄悄告诉你
26-03-03 - 阿里、微盟、碧桂园,抢占智慧餐饮高地
阿里、微盟、碧桂园,抢占智慧餐饮高地
26-03-03 - 一夜爆火的鸿星尔克还差点什么?
一夜爆火的鸿星尔克还差点什么?
26-03-03
