Index look-up : Methods of Index lookup: Index unique scan Index range scan Index full scan Index fast full scan Rowid 1) Index unique scan: A "unique" scan scans for a single value in a unique index. SELECT first_name FROM employees WHERE employee_id = 100; 2) Index range scan : A "range" scan starts at some starting value, and reads index entries sequentially (i,.e. along the b-tree) until it encounters a value that runs past a second value (a search for a single value on a non-unique index is a range scan. SELECT first_name, salary FROM employees WHERE employee > 190 ORDER BY 1 ASC; 3) Index full scan : An index full scan is when we read the index a block at a time - from start to finish. We'll read the root block, navigate down the left hand side of the index (or right if we are doing a descending full scan) and then when we hit the leaf block - we'll read across the entire bottom of the index - a block at a time - in sorted order. We use single block IO, not multi-block IO for this operation 4) Index Fast full scan : An index fast full scan reads the ENTIRE index, unsorted, as it exists on disk. It is basically using the index as a "skinny" version of the table. The query in question would only be accessing attributes in the index (we are not using the index as a way to get to the table, we are using the index INSTEAD of the table) We use multi-block I/O and read all of the leaf, branch and the root block. We ignore the branch and root blocks and just process the (un-ordered) data on the leaf blocks.