假如db buffer cache 设定为10M,根据LRU机制知道对buffer cache 的使用。但如果一条查询语句返回的数据量超过10M,oracle怎么分配cache的?

解决方案 »

  1.   

    Oracle将数据文件中的数据块复制到缓存中之前,必须首先找到空闲缓存块以容纳新的数据块,Oracle将从LRU列表的LRU段开始搜索,如果在搜索了一定数量的缓存块后仍然没有获得全部所需的空闲缓存块,ORACLE将激活DBWR进程,被写入的脏缓存块将恢复为空闲缓存块,然后被放入LRU列表中,执行完后再重新开始搜索.