If I understand you correctly, you want to find the number of blocks that actually contain any data of a particular table/index.

Well, for tables I know for sure: there is no *general* method to get the exact answer, short of dumping all the data blocks below the highwatter mark of a table. None. Multiplying dba_tables.blocks*blocksize does not give you any accurate answer.

I don't think there is anything different with indexes.