Buffer Pool (cont)
How scans are performed with Buffer Pool:
Buffer buf;
int N = numberOfBlocks(Rel);
for (i = 0; i < N; i++) {
pageID = makePageID(db,Rel,i);
bufID = request_page(pageID);
buf = frames[bufID]
for (j = 0; j < nTuples(buf); j++)
process(buf, j)
release_page(pageID);
}
|
Requires N page reads on the first pass.
If we read it again, 0 ≤ page reads ≤ N
|