楼主: vage

[精华] 福尔摩斯探案集之 -- 解读CBC Latch Miss:kcbgtcr: kslbegin excl 之谜

[复制链接]
论坛徽章:
8
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42复活蛋
日期:2012-11-19 17:39:15ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42喜羊羊
日期:2015-03-04 14:52:462015年新春福章
日期:2015-03-06 11:58:18ITPUB14周年纪念章
日期:2015-10-26 17:23:44ITPUB15周年纪念
日期:2016-10-13 13:15:34
81#
发表于 2013-7-9 17:02 | 只看该作者
楼主,学习!!!

使用道具 举报

回复
求职 : 数据库开发
论坛徽章:
2
茶鸡蛋
日期:2013-03-10 14:45:15ITPUB社区千里马徽章
日期:2013-06-09 10:15:34
82#
发表于 2013-7-10 15:50 | 只看该作者
本帖最后由 Yured 于 2013-7-10 16:04 编辑
vage 发表于 2013-4-6 11:28
这么简单的函数,相信应该是用C语言的内嵌汇编写的。现在,进程正停在sskgslcas的入口处,福尔摩斯看了一下 ...

再也不敢在简历上写熟悉Oracle了,感谢vage大师,补下汇编知识再来拜读,先记下结论:

这真是一个奇怪的结果,逻辑读函数中的Latch竞争,原凶竟然是物理读。
调优的方向,应该是针对物理读最多的一些SQL,这样才有助于减少kcbgtcr: kslbegin excl处的Latch争用。
而这调优逻辑读高的SQL,对于减少kcbgtcr: kslbegin excl处的Latch争用,是没有帮助的。

进一步的,可以将kcbgtcr中的Latch Miss分个类:
一、纯逻辑读相关的
1、kcbgtcr+0x521:                  movq   0xaf5f9e0(%rip),%r8   ---662 kcbgtcr: fast path
2、kcbgtcr+0x27ba:                 movq   0xa718147 (%rip),%r8   ---- kcbgtcr: fast path (cr pin)

二、物理读相关的:
3、kcbgtcr+0x5ba9:                 movq   0xaf5a360(%rip),%r8    ---- 0x663  kcbgtcr: kslbegin excl     
4、kcbgtcr+0x61eb:                 movq   0xaf59eae(%rip),%r8   --- 695 kcbgtcr_2
5、kcbgtcr+0x6444:                 movq   0xaf599bd(%rip),%r8  --- 642  kcbgtcr: kslbegin shared
6、kcbgtcr+0x976d:                 movq   0xaf56a0c(%rip),%r8   ---6b1 kcbgtcr: L2

使用道具 举报

回复
论坛徽章:
13
生肖徽章2007版:兔
日期:2009-03-24 09:50:192014年新春福章
日期:2014-02-18 16:43:09大众
日期:2013-09-02 09:13:19蜘蛛蛋
日期:2013-05-20 09:44:372013年新春福章
日期:2013-02-25 14:51:24蛋疼蛋
日期:2012-11-27 15:47:59ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:19奥运会纪念徽章:足球
日期:2012-10-08 08:54:372011新春纪念徽章
日期:2011-03-23 16:25:422011新春纪念徽章
日期:2011-02-18 11:43:34
83#
发表于 2013-9-5 16:17 | 只看该作者
本帖最后由 gaolu1234 于 2013-9-5 16:21 编辑

又看了遍老吕的帖子,以后真的不敢说熟悉oracle了。

所以,原凶就是:“物理读”。
这真是一个奇怪的结果,逻辑读函数中的Latch竞争,原凶竟然是物理读。
调优的方向,应该是针对物理读最多的一些SQL,这样才有助于减少kcbgtcr: kslbegin excl处的Latch争用。
而这调优逻辑读高的SQL,对于减少kcbgtcr: kslbegin excl处的Latch争用,是没有帮助的。

以前做过调优,模模糊糊有这样的感觉, 物理高读的sql处理掉了, 逻辑读高的也消失了。

使用道具 举报

回复
论坛徽章:
35
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25劳斯莱斯
日期:2013-11-04 15:42:11奥迪
日期:2013-11-04 15:42:11福特
日期:2013-11-04 15:42:11比亚迪
日期:2013-11-02 11:33:55法拉利
日期:2013-11-10 17:40:262014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有对象
日期:2014-03-06 14:09:44马上有房
日期:2014-05-06 18:40:39
84#
发表于 2013-9-10 19:52 | 只看该作者
好文!

使用道具 举报

回复
论坛徽章:
0
85#
发表于 2013-9-13 09:24 | 只看该作者
我认为文章的结论是错误的。
原文中这样说:
    //如果CBC链搜索完毕没找到目标dba,跳转到kcbgtcr+0x5840处。

有没有忘掉kcbgtcr: kslbegin excl在代码的哪里:

kcbgtcr+0x5ba9:                 movq   0xaf5a360(%rip),%r8    ---- 0x663  kcbgtcr: kslbegin excl

kcbgtcr+0x5ba9,在kcbgtcr+0x5840之后不远的位置,这块代码,只有物理读才有可能走到这里。

对于逻辑读,不光块地址(DBA--data block address)要匹配,而且还有一个重要条件就是块的SCN需要满足逻辑读的SCN条件,第一次扫描CBC的时候无疑会要寻找最佳匹配逻辑读需要的块,如果没有直接可用的,则需要进入slow path模式。也就是相对于fast path模式而言。kslgtcr: kslbegin excl的确不太让人明白,不过在12c里面,这个改成了”kcbgtcr: slow path excl“和"kcbgtcr: slow path shr"。

使用道具 举报

回复
论坛徽章:
9
奔驰
日期:2013-09-30 15:54:45雪佛兰
日期:2013-09-30 15:55:12宝马
日期:2013-10-11 08:39:41雪佛兰
日期:2013-10-14 08:39:43凯迪拉克
日期:2013-11-13 11:28:39保时捷
日期:2013-12-02 16:45:00劳斯莱斯
日期:2013-12-20 13:58:26福特
日期:2013-12-23 13:35:23路虎
日期:2014-01-06 13:45:40
86#
发表于 2013-9-13 10:39 | 只看该作者

太强了 , 好喜歡

使用道具 举报

回复
论坛徽章:
70
夏利
日期:2013-09-29 21:02:15天蝎座
日期:2016-03-08 22:25:51嫦娥
日期:2014-03-04 16:46:45ITPUB年度最佳技术原创精华奖
日期:2014-03-04 16:19:29马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:11
87#
 楼主| 发表于 2013-9-13 11:41 | 只看该作者
oracleodu 发表于 2013-9-13 09:24
我认为文章的结论是错误的。
原文中这样说:

这也是有可能的。
kcbgtcr+0x5840很可能是非Fast Path的入口,而不是物理读的入口。

什么样的条件才Slow Path,还有这方面的资料没。如果有进一步的资料,我帮大家把kcbgtcr: kslbegin excl的真正意义破解出来。

使用道具 举报

回复
论坛徽章:
6
林肯
日期:2013-09-29 09:17:252014年新春福章
日期:2014-04-28 16:05:382014年世界杯参赛球队: 厄瓜多尔
日期:2014-05-21 21:02:022014年世界杯参赛球队: 英格兰
日期:2014-06-03 14:07:49处女座
日期:2015-07-24 14:35:11狮子座
日期:2015-07-30 14:27:35
88#
发表于 2013-9-14 23:11 | 只看该作者
看不懂 先mark。。

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2007-05-27 10:01:372010年世界杯参赛球队:巴西
日期:2010-02-09 17:18:59祖国60周年纪念徽章
日期:2009-10-09 08:28:002009日食纪念
日期:2009-07-22 09:30:002009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:排球
日期:2008-07-09 05:35:32奥运会纪念徽章:自行车
日期:2008-05-24 17:23:07生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:鸡
日期:2008-01-02 17:35:532013年新春福章
日期:2013-02-25 14:51:24
89#
发表于 2013-9-15 16:30 | 只看该作者
高呀,是方法高呀

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2007-05-27 10:01:372010年世界杯参赛球队:巴西
日期:2010-02-09 17:18:59祖国60周年纪念徽章
日期:2009-10-09 08:28:002009日食纪念
日期:2009-07-22 09:30:002009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:排球
日期:2008-07-09 05:35:32奥运会纪念徽章:自行车
日期:2008-05-24 17:23:07生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:鸡
日期:2008-01-02 17:35:532013年新春福章
日期:2013-02-25 14:51:24
90#
发表于 2013-9-15 16:41 | 只看该作者
wenzhou320 发表于 2013-4-26 14:35
记得那天老总主要把这块内容的讲解跟soft parse,hard parse结合起来,让我们如何调优主要从parse着手,而不 ...

让我们如何调优主要从parse着手,而不 ....

這個能說明白點不?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表