楼主: wei-xh

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

[复制链接]
论坛徽章:
16
授权会员
日期:2005-11-01 10:49:02ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472011新春纪念徽章
日期:2011-02-18 11:43:322010年世界杯参赛球队:南非
日期:2010-05-12 11:08:572010新春纪念徽章
日期:2010-03-01 11:04:542009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2008-10-31 12:50:13生肖徽章2007版:狗
日期:2008-10-24 18:01:04奥运会纪念徽章:排球
日期:2008-10-24 13:30:01生肖徽章2007版:狗
日期:2008-10-20 14:41:16
71#
发表于 2013-9-3 16:23 | 只看该作者
wei-xh 发表于 2013-8-26 13:03
修改完成后,pin会被从list上移走。

buffer busy wait,cache buffers chains  这两个等待我常见到,是不是可以认为
buffer busy wait                别的session导致的等待
cache buffers chains           本身session导致的等待         

使用道具 举报

回复
论坛徽章:
6
ITPUB社区12周年站庆徽章
日期:2013-09-18 15:36:43ITPUB社区12周年站庆徽章
日期:2013-09-23 13:25:59奥迪
日期:2013-08-15 13:25:25本田
日期:2013-10-28 20:14:27现代
日期:2013-11-22 22:50:23宝马
日期:2013-11-27 09:16:02
72#
发表于 2013-9-11 16:19 | 只看该作者
学习了

使用道具 举报

回复
论坛徽章:
10
2011新春纪念徽章
日期:2011-02-18 11:43:342015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09优秀写手
日期:2013-12-18 09:29:11三菱
日期:2013-08-30 20:37:412013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51暖羊羊
日期:2015-06-22 15:51:36
73#
发表于 2013-9-16 14:36 | 只看该作者
场景1虽然不会出现buffer busy wait,但会大量的latch: cache buffers chains  

使用道具 举报

回复
论坛徽章:
6
2013年新春福章
日期:2013-02-25 14:51:24双黄蛋
日期:2013-05-04 22:01:39双黄蛋
日期:2013-07-24 20:45:33现代
日期:2013-09-22 17:37:09青年奥林匹克运动会-现代五项
日期:2014-09-12 16:09:06马上加薪
日期:2014-11-21 11:55:20
74#
发表于 2013-9-27 09:09 | 只看该作者
道理其实非常简单
1)当读取的进程发现内存块正在被修改的时候(如果有x模式的buffer pin,就说明正在被修改),它只能等待,它不能clone块,因为这个时候内存块正在变化过程中ing,这个时候clone是不安全的。很多人说,oracle里读写是互相不阻塞的,oracle可以clone内存块,把读写的竞争分开。其实要看情况,在读的时候发现内存块正在被写,是不能够clone的,因为是不安全的。这个时候读的进程只能等待buffer busy waits。


个人不明白,难道这个时候oracle不去构造cr块么?

使用道具 举报

回复
论坛徽章:
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
75#
 楼主| 发表于 2013-9-27 11:20 | 只看该作者
hello985 发表于 2013-9-27 09:09
道理其实非常简单
1)当读取的进程发现内存块正在被修改的时候(如果有x模式的buffer pin,就说明正在被修 ...

要构造CR,等待写完成后构造

使用道具 举报

回复
论坛徽章:
10
比亚迪
日期:2013-09-10 14:55:41暖羊羊
日期:2015-04-03 17:31:00马上有对象
日期:2014-08-04 19:04:50马上有车
日期:2014-02-18 16:50:092014年新春福章
日期:2014-02-18 16:50:09Jeep
日期:2014-01-06 18:25:20夏利
日期:2013-11-27 14:21:50福特
日期:2013-10-28 16:28:52凯迪拉克
日期:2013-09-27 21:21:43巨蟹座
日期:2016-05-05 16:06:16
76#
发表于 2013-9-27 12:32 | 只看该作者
good job!

使用道具 举报

回复
论坛徽章:
0
77#
发表于 2014-6-8 09:49 | 只看该作者
你好!~我有个疑问一直不懂~希望能得到解释!~
“写写”能会出现 buffer busy waits 很容易理解,但是在“读写”的时候我就不大理解了,当一个进程在写的时候不是会 clone 一个块么,这是不是就相当于构造了 CR 快?那么这时候读为什么不读CR块?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
25
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25itpub13周年纪念徽章
日期:2014-10-08 16:34:19itpub13周年纪念徽章
日期:2014-10-10 17:49:05马上有车
日期:2014-12-19 09:23:24马上加薪
日期:2014-12-29 20:30:27马上有车
日期:2015-01-20 22:29:13美羊羊
日期:2015-03-04 14:52:282015年新春福章
日期:2015-03-06 11:58:18狮子座
日期:2015-07-14 14:44:11秀才
日期:2015-08-17 13:13:32
78#
发表于 2014-10-28 23:19 | 只看该作者
vage 发表于 2013-7-8 16:27
绝大多数情况下的CBC Latch都是独占的。
只的唯一索引、访问根块、枝块时的CBC Latch才是共享的。

"枝块时的CBC Latch才是共享的"
这句话是不完整的,
进程访问一个索引页块的时候,第一次获得cbc latch是共享的,后面几次是独占的。

使用道具 举报

回复
论坛徽章:
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
79#
发表于 2014-10-30 12:13 | 只看该作者
www_xylove 发表于 2014-10-28 23:19
"枝块时的CBC Latch才是共享的"
这句话是不完整的,
进程访问一个索引页块的时候,第一次获得cbc latch ...

不是啊,访问根块、枝块时的CBC Latch是共享的,叶块和表块还是独占的啊
唯一索引如果条件是等值的话,从根块一直到表块都是共享Latch啊。所以如果索引可以建成唯一的,要尽量建成唯一的,可以减少CBC Latch的竞争啊

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
25
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25itpub13周年纪念徽章
日期:2014-10-08 16:34:19itpub13周年纪念徽章
日期:2014-10-10 17:49:05马上有车
日期:2014-12-19 09:23:24马上加薪
日期:2014-12-29 20:30:27马上有车
日期:2015-01-20 22:29:13美羊羊
日期:2015-03-04 14:52:282015年新春福章
日期:2015-03-06 11:58:18狮子座
日期:2015-07-14 14:44:11秀才
日期:2015-08-17 13:13:32
80#
发表于 2014-10-30 17:55 | 只看该作者
vage 发表于 2014-10-30 12:13
不是啊,访问根块、枝块时的CBC Latch是共享的,叶块和表块还是独占的啊
唯一索引如果条件是等值的话,从 ...

谢谢。

使用道具 举报

回复

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

本版积分规则 发表回复

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