使用 db_file_multiblock_read_count测试Oracle在不同系统中的IO能力(3) WAIT #26: nam='db file scattered read' ela= 8923 p1=10 p2=265 p3=128WAIT #26: nam='db file scattered read' ela= 8853 p1=10 p2=393 p3=128WAIT #26: nam='db file scattered read' ela= 8985 p1=10 p2=521 p3=128WAIT #26: nam='db file scattered read' ela= 8997 p1=10 p2=649 p3=128WAIT #26: nam='db file scattered read' ela= 9096 p1=10 p2=777 p3=128WAIT #26: nam='db file scattered read' ela= 583 p1=10 p2=905 p3=12$
我们可以看到,在以上测试平台中,Oracle最多每次IO能够读取128个Block,由于block_size为8k,也就是每次最多读取了1M数据.系统平台为:
$ uname -aSunOS billing 5.8 Generic_108528-23 sun4u sparc SUNW,Ultra-4
当然具体的,Oracle一次IO能读取多少block还和很多因素有关,比如存储是否连续,磁盘是否经过条带等方式划分,并且Oracle的单次IO读取不能跨越Extent边界等.某些平台还和操作系统的参数设置有关.
大家可以测试一下不同的平台,Oracle的单次IO最多可以读取的Block数量.