Can anybody point me to some documentation about what goes on during a CREATE INDEX and a ALTER INDEX REBUILD? I am trying to figure out if ALTER INDEX REBUILD reads the old index to create the "rebuilt" index, or if the REBUILD goes back to the table to create the "rebuilt" index. I have an idea, but I need definitive proof.

For example, if I have a table (XYZ) that has 1 million rows and an index (XYZ_PK) that is a unique index on that table. If I issue CREATE UNIQUE INDEX xyz_pk ON xyz(x) of course every row in XYZ will be read. However, if I issue ALTER INDEX xyz_pk REBUILD, does Oracle read XYZ_PK and re-organize the blocks or does it read XYZ to build the new index?