Question: *This is a multipart Index question:*

1. Is there a way one can create index
on index?
2. Why would one wish to to so?
3. And if so, are there any examples?

Answer: 
You can see from syntax diagram for [create index](http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_5010.htm) in the oracle documentation that it does not apply to indexes.  

Nor can I think of a reason you would want to.
An index is already sorted so really you probably do not want to create an index to one as such. You might, however, if doing low-level programming, want to store a subset of an index, say every 1024th or every 2048th record, in memory or a smaller area of disk, so you can look there first and search where in the bigger index a record lies.

The "square root" rule works well here. So if the table has 4 million entries, that is 2048 \* 2048 (approx). You "load" 2048 records and then find which 2048 record section of the main index you need to load in order to find the record, thus you load only 2 blocks in total rather than having to binary-search through 2048 blocks.

This can be a huge optimisation but it is for low-level programmers, i.e. developers of database tools, not users of them.