ITPub博客

首页 > 数据库 > Oracle > enq: RO fast object reuse 和 enq: KO fast object checkpoint

enq: RO fast object reuse 和 enq: KO fast object checkpoint

原创 Oracle 作者:哎呀我的天呐 时间:2015-04-18 19:47:48 0 删除 编辑

 enq: RO fast object reuse 

 它是用于同步前台进程与后台进程(dbwr, ckpt)的。当你truncate或者drop一个对象的时候,前台进程,首先获取一个RO enq, 以排它模式。

CKPT进程,请求单对象checkpoint,并请求DBWr写脏块,并把buffer里的块无效化。DBWR把所有的块写完以后, 前台进程释放RO enq,这是它使用的过程。


如果有多个session同时truncate/drop就会发生争用。


 truncate, drop之前要把buffer pool刷出去。
D111 2015/4/18 18:55:07

是的
上海2015/4/18 18:55:15

 _db_fast_obj_truncate把这个参数关掉,truncate时,这个行为就没了。
D111- 2015/4/18 18:55:17

所以 ddl操作也是比较费资源的
上海 2015/4/18 18:55:28

要刷出去就要加RO enq.
D111 2015/4/18 18:55:53


 直路径读之前,也有类似的行为。。。
上海2015/4/18 18:59:11

enq: KO - fast object checkpoint 

D103 2015/4/18 19:00:45

恩 研究研究
上海 2015/4/18 19:01:12

在direct path read之前,也要把脏块先写进数据文件, 如果ckpt,dbwr不够快等原因,就会有KO的等待。
上海2015/4/18 19:02:13

SQL> r
  1* select description from v$lock_type where type='KO'

DESCRIPTION
--------------------------------------------------------------------------------
Coordinates checkpointing of multiple objects

D103- 2015/4/18 19:02:18

direct path read 之前为什么要先写 脏块呢

D103 2015/4/18 19:02:28

以为要从磁盘 读 最新的 是吧
D1112015/4/18 19:02:34

因为不走 buffer cache
上海 2015/4/18 19:02:43

你想,它从数据文件直接读。。。不写脏块,那不读错了呀。
上海 2015/4/18 19:02:46

是的。

D103 2015/4/18 19:02:58
明白

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29990276/viewspace-1585026/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
https://cloud.tencent.com/developer/inventory/14362

注册时间:2014-10-30

  • 博文量
    403
  • 访问量
    2528772