Just a little note on two index operations that you might see in an execution plan that are worth highlighting because it’s so easy to miss just one critical word in the name of the operation.
Index Full Scan: walks down the branch blocks to the first (lowest key) leaf block, and then walks the index in key order, typically reading one leaf block at a time, and using the leaf pointers to get from leaf block to leaf block. This operation can be hinted to work in descending order through the index.
Index Fast Full Scan: goes to the first block of the segment, and does multi-block reads through the segment, picking up branch and leaf blocks, discarding the branches and using the data in the leaf blocks as if they were skinny tables. Does not return the data in order.
The index full scan typically uses db file sequential reads to get data from disk, although newer versions of Oracle can do db file parallel reads which are read requests for multiple Oracle blocks that are not adjacent blocks in the Oracle data files.
The index fast full scan typically uses db file scattered reads to get data from disk and the indexes are then subject to all the details of the special treatment for tablescans.