So far we’ve been looking at the mechanics of copying a block from disc into memory. Now, working round and round in circles as you have to when learning Oracle, we have to address the question, “How did you know that you needed to read that block from disc, and how did you decide, quickly and efficiently, that it wasn’t already in memory?”
We’ve been looking at the replacement list, which lets us decide which buffer to reuse for new data, but we don’t want to search through the replacement list one buffer at a time to see which one (if any) holds the block we’re interested in. We now need a different way of viewing those buffers so that we can find the one we want as quickly as possible.
We’ve already seen the answer to this problem, ...