|
有两个疑问。
1. 在场景2的实验中。 两个update 的where条件都是用的rowid。 我记得对一个row 进行update的时候,该row的位置是在block的 空闲部分新加一个row。比如该row原来在block 1的第一行,update 完一列它会跑到最后一行去,所以我想 update过多的话。甚至有可能跑到其它的block去。 你这里进行的update的操作得有几万次,也许早就不是在同一个block上进行的操作了,怎么能证明是他们产生了对同一个 buffer block 的 pin争用呢?
2. 如果 buffer_busy_wait是pin争用造成的。那么 cbc latch争用造成的等待应该是什么呢? 虽然pin的出现减少了 cbc latch的争用,但毕竟应该还是有的吧。 比如说 100个session 并发的,大量的在同一个 bucket上查找自己需要的数据块。 总会有争用的吧。 这个争用造成的等待是什么呢? |
|