减少O代价的优化 ●性能的评价是一MO的次数为标准的 ●如果一次对连续的数据进行读写将提高性 ●如何提高CPU的使用率
减少I/O代价的优化 ⚫性能的评价是一I/O的次数为标准的 ⚫如果一次对连续的数据进行读写将提高性 能 ⚫如何提高CPU的使用率
块O ●以缓冲区Bock(若干个page)为单位进行 读写将提高单个Page读写的速度(减少了磁 头移动的次数) ●每次只能进行F(Bb)/b个run的合并,其 中B为缓冲区中页的数量,b为一个块中页 的个数,总的扫描遍数为ogN2+1,其中 N2=「N2B
块I/O ⚫以缓冲区Block(若干个page)为单位进行 读写将提高单个Page读写的速度(减少了磁 头移动的次数) ⚫每次只能进行F=(B-b)/b个run的合并,其 中B为缓冲区中页的数量,b为一个块中页 的个数,总的扫描遍数为logFN2+1,其中 N2= N/2B
应用实例 B=10 B=5*10 B=104 B=5*104 1021 102 111 3 2 1063 107 4 1o5 22334 22333 2 1095 3
应用实例 N B=103 B=5*103 B=104 B=5*104 102 1 1 1 1 103 1 1 1 1 104 2 2 1 1 105 3 2 2 2 106 3 2 2 2 107 4 3 3 2 108 5 3 3 2 109 5 4 3 3
双缓冲区 ●排序的时间包括O的时间和CPU计算的时 ●在前面的方法中CPU计算的时间同/O的时 间不是并行的 ●对每个un多加一个缓冲区,一个缓冲区在 进行ⅣO操作的同时,对另一个缓冲区的数 据进行计算
双缓冲区 ⚫排序的时间包括I/O的时间和CPU计算的时 间 ⚫在前面的方法中CPU计算的时间同I/O的时 间不是并行的 ⚫对每个run多加一个缓冲区,一个缓冲区在 进行I/O操作的同时,对另一个缓冲区的数 据进行计算
图示 nput Input 1 Input 2 output 1 Input 2 output 1 Input b-1 p Disk Disk Input b-1 p
图示 … … Disk Disk Input 1 Input 2 Input B-1 output 1 Input 1’ Input 2’ Input B-1’ … output 1’