采用预读缓存对象,此时如果真实数据库中数据已改变呢?oracle如何解决互斥的问题?还是需要自己写?
麻烦请详细的说一下,或提供详细资料。100分送上。

解决方案 »

  1.   

    oracle通过内部的latch、queue等解决互斥操作。
    oracle数据被修改的时候,是先修改redo、undo,再修改cache对象,修改的cache对象有dbwr进程来写数据文件。上面提到的
    每个对象都会表记一个scn,通过scn来识别cache对象是否是dirty。所以这块你不用担心,oracle自己内部都解决了。
      

  2.   

    oracledbalgtu 兄弟,有没有具体资料可供详细参考?里面的一些机制我想稍微看的细一些。
      

  3.   

    比如在update时,就会出现“查询重启动”这样的一个特性。这也是oracle独有的。
      

  4.   

    你需要了解oracle的体系结构.看看concepts