IT技术博客大学习 共学习 共进步

sequential和scattered的含义

Hello DBA 2009-10-18 23:17:14 浏览 3,083 次

    sequential read(顺序读)一般发生在index range scan中,也被称为单块读,scattered read(离散读)一般发生在FTS中,也被称为多块读。对于sequential和scattered这两个词的含义,往往会造成一些困惑。因为从IO的角度去看,sequential read因为是单块读,在IO子系统上是离散读。而scattered read因为是多块读,在IO子系统上是顺序读。

    因为所谓的sequential和scattered是从Oracle的角度去看,而不是从IO子系统的角度去看。sequential的含义是指Oracle请求IO是顺序的,比如index range scan,就必须是先读root,再读branch,然后读leaf,最后读data block,这个过程是顺序,串行和同步的。而scattered read是指Oracle请求IO是离散的,比如在做FTS时,可以向操作系统同时请求多个IO,而且不必等到返回,就可以请求下一个IO,所以是异步的过程。所以我说scattered read是局部并行,全局串行的过程。

    Oracle的顺序读在IO子系统上是离散的,而Oracle的离散度在IO子系统上是连续的,之所以这么命名是因为Oracle和IO子系统站在自己的角度观察的结果。

    -EOF-

建议继续学习

  1. 全表扫描却产生大量db file sequential read一例 (阅读 3,061)