Which databases use real multidimensional indices? Is oracle ever using several indices to get data from tables, or will it always take the one that seems to have the highest selectivity? How about other dbms?


Oracle has an index type called a Bitmap Index which it describes as...

A database index in which the database stores a bitmap for each index key instead of a list of rowids.

If a table has a bitmap index or a hint is used, it can use a bitmap access plan on regular B-tree indexes. Bitmap indexes can be joined, union-ed, and intersected.

There is an excellent explanation at use-the-index-luke.com where it includes the following implementations of combining multiple B-Tree indexes:

DB2: DB2 supports multiple index access on LUW 9r7 (using a dynamic bitmap) and on zOS v10.

MySQL: MySQL has an index merge optimization starting with release 5.0.

Oracle The Oracle database uses BITMAP CONVERSIONs to combine multiple indexes on the fly (introduced with 9i).

PostgreSQL PostgreSQL uses bitmaps to combine multiple indexes since version 8.1.

SQL Server SQL Server can use multiple indexes ("Index Intersect") starting with V7.0 using a hash algorithm.

See also this StackOverflow question in which the first answer says that SQL Server does something similar to Bitmapped indexes using index intersection.

Efficient and Flexible Bitmap Indexing for Complex Similarity Queries is the closest reference I have found associating Bitmapped indexes with the word multidimensional. Multidimensional seems to be more of a way to use indexes rather than an attribute of them.

|improve this answer|||||

SQL Server may perform "Index intersection". And on MSDN.

Is this what you mean?

|improve this answer|||||
  • exactly! Is there something comparable in oracle? – paweloque Mar 15 '11 at 15:21
  • 1
    er... dunno. I'm an MS monkey. – gbn Mar 15 '11 at 15:42

Possibly Oracle bitmap indexes are that what you are looking for. Oracle Index types.

I think they permit union and intersection. But I admit, that I'm not familiar with them.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.