|
lfree 发表于 2015-11-4 16:41
是不是可以这样认为在11.2.0.4下读读只需要共享cbc latch,不存在这个的争用问题。
原来的哪种不需要独占cbc latch和buffer pin lock,只需要共享cbc latch的逻辑读,Oracle称为examination read(可以在'consistent gets - examination'资料中看到它的变化)。
11.2.0.4后,虽然普通的读互相也不会阻塞cbc latch了,但还是它们都变成examination read了。我觉得是Oracle改变了读CBC Latch的模式,至少为普通逻辑读新增了一种模式的cbc latch:
examination read 模式:纯共享,Buffer Header没有任何改变。
普通逻辑读模式:共享,但会改变Buffer Header中的Buffer pin lock,这个改变,目前看来没有任何锁机制保护,多个进程可以同时以”普通逻辑读模式“持有latch,修改buffer header。这个机制还要再进一步研究。
修改模式:独占。
|
|