楼主: wei-xh

[精华] buffer busy waits,我的看法

[复制链接]
论坛徽章:
66
皇马
日期:2009-02-13 09:38:532011新春纪念徽章
日期:2011-02-18 11:43:342010广州亚运会纪念徽章:柔道
日期:2011-04-08 23:11:212010广州亚运会纪念徽章:排球
日期:2011-04-18 22:00:58鲜花蛋
日期:2011-05-30 21:23:49ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15迷宫蛋
日期:2012-12-18 23:39:42问答徽章
日期:2013-09-25 16:14:23优秀写手
日期:2015-02-12 06:00:13
61#
发表于 2013-7-15 14:07 | 只看该作者
果断留名,做下实验

使用道具 举报

回复
论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:49:31马上有钱
日期:2014-02-18 16:49:31
62#
发表于 2013-7-15 14:27 | 只看该作者
vage 发表于 2013-7-8 14:36
10G之后都是楼主所说的情况。

不包括9I啊???

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
9
BLOG每日发帖之星
日期:2010-07-25 01:01:012013年新春福章
日期:2013-02-25 14:51:24奔驰
日期:2013-09-24 09:56:17雪铁龙
日期:2013-10-09 11:29:13路虎
日期:2013-12-25 09:03:102014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09马上加薪
日期:2014-07-23 13:50:23青年奥林匹克运动会-现代五项
日期:2014-08-29 14:56:04
63#
发表于 2013-7-15 14:51 | 只看该作者
即使你所有的操作都是查询非修改,也会导致大量的cbc latch争用:cbc latch的持有到cbc latch的释放这段时间过长了
查询为什么也要获取latch 那

使用道具 举报

回复
论坛徽章:
7
ITPUB社区OCM联盟徽章
日期:2013-11-21 14:20:57凯迪拉克
日期:2013-12-26 16:51:31林肯
日期:2014-02-12 09:37:17奥迪
日期:2014-02-13 11:18:512014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08问答徽章
日期:2014-03-04 09:24:23
64#
发表于 2013-7-17 12:10 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
65#
发表于 2013-7-17 17:48 | 只看该作者
wei-xh,您好:
   您的这一篇帖子我看了好几篇,受益匪浅。但可能是我的水平有限,有些地方没能弄懂,想向您请教一下!

  第一点:
在博客中您写到“ORACLE通过让每次访问buffer block的会话获取两次cbc latch”,为什么在读取/或者修改要先获取cbc latch然后才nupin这个buffe呢?为什么不是直接就unpin呢?这步的作用是什么呢?
  第二点:
如果A会话已经pin住某个buffer(假设是独占方式),B会话也需要读取或修改该数据块,那么此时B会话无法获得该buffer的pin。那B会话是不是一直保持buffer所在chain上的lock,进而引起lock的争用呢? 希望wei大师有空的话能给回复啊,谢谢您!
.

使用道具 举报

回复
论坛徽章:
21
奔驰
日期:2013-08-06 15:23:05日产
日期:2013-08-07 22:56:38蜘蛛蛋
日期:2012-12-29 19:15:08奥迪
日期:2013-08-07 17:02:24数据库板块每日发贴之星
日期:2010-06-28 01:01:03奥迪
日期:2013-08-13 10:10:28本田
日期:2013-11-20 15:17:02优秀写手
日期:2013-12-18 09:29:08玉兔
日期:2014-03-04 16:47:17铁扇公主
日期:2012-02-21 15:02:40
66#
 楼主| 发表于 2013-7-17 17:58 | 只看该作者
shaochenshuo 发表于 2013-7-17 17:48
wei-xh,您好:
   您的这一篇帖子我看了好几篇,受益匪浅。但可能是我的水平有限,有些地方没能弄懂,想向 ...

第一点:unpin是属于修改buffer header的操作,把当前会话从拥有者列表移除,需要早CBC LATCH的保护下完成
第二点:获得不了buffer pin的话,就加入到wait list里,等待被唤醒,或者等超时后,自己苏醒去查看锁是不是已经被释放,表现出来的等待事件就是:buffer busy waits

使用道具 举报

回复
论坛徽章:
0
67#
发表于 2013-8-5 23:22 | 只看该作者
参观参观

使用道具 举报

回复
论坛徽章:
0
68#
发表于 2013-8-24 17:26 | 只看该作者
通过楼主的分析,不管写写,写读,读写,读读都会产生latch。
但只有写写,写读会产生堵塞,因为修改buffer必须先pin住块。
请问写写、写读是会产生CR块的,如果修改一个buffer,pin的块没有修改完是无法CR的,这个是通过什么判断,感觉在步骤上应该还有一个判断buffer是否修改完毕。

使用道具 举报

回复
论坛徽章:
21
奔驰
日期:2013-08-06 15:23:05日产
日期:2013-08-07 22:56:38蜘蛛蛋
日期:2012-12-29 19:15:08奥迪
日期:2013-08-07 17:02:24数据库板块每日发贴之星
日期:2010-06-28 01:01:03奥迪
日期:2013-08-13 10:10:28本田
日期:2013-11-20 15:17:02优秀写手
日期:2013-12-18 09:29:08玉兔
日期:2014-03-04 16:47:17铁扇公主
日期:2012-02-21 15:02:40
69#
 楼主| 发表于 2013-8-26 13:03 | 只看该作者
c277498501 发表于 2013-8-24 17:26
通过楼主的分析,不管写写,写读,读写,读读都会产生latch。
但只有写写,写读会产生堵塞,因为修改buffe ...

修改完成后,pin会被从list上移走。

使用道具 举报

回复
求职 : 数据库管理员
招聘 : 系统架构师
论坛徽章:
4
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22ITPUB社区千里马徽章
日期:2013-08-22 09:58:032014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09
70#
发表于 2013-8-28 15:50 | 只看该作者
看过很多这样的文章,写的挺好的~ 赞一个。

使用道具 举报

回复

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

本版积分规则 发表回复

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