|
重新读了biti 的帖子,现在终于明白了
current mode 和query mode 只不过是2种相对的不同的叫法。对于select 来说,由于oracle 的读一致性特性,在query mode 下,oracle 从buffer cache 中读到的数据必须是一致的,所以在query mode 下,oracle 可能或者不需要从undo 中读取数据,所以在query mode 下,就是consistents gets,所以在select 中一般只有consistent gets 而没有db block gets
而对于DML(insert,delete,update)操作,因为是修改数据就不需要什么一致性读了,就是直接在buffer cache 里面进行修改了,所以叫做current mode ,就是当前读到什么数据就修改,不需要保证数据库的一致性,因为修改都要将数据进行修改,修改呢?也是在buffer cache 中完成的,所以就叫做current mode ,为了和query 区别,对Buffer 的访问就叫做db block gets
偶总是想弄明白为什么这么叫,所以迷惑了
 |
|