On 11/8/05, Paul Drake <bdbafh@xxxxxxxxx> wrote: > > http://www.postgresql.org/docs/8.1/interactive/release.html#RELEASE-8-1 > > The following seemed interesting to me. > > block quote: > > Allow index scans to use an intermediate in-memory bitmap (Tom) > > In previous releases, only a single index could be used to do lookups > on a table. With this feature, if a query has WHERE tab.col1 = 4 and > tab.col2 = 9, and there is no multicolumn index on col1 and col2, but > there is an index on col1 and another on col2, it is possible to > search both indexes and combine the results in memory, then do heap > fetches for only the rows matching both the col1 and col2 > restrictions. This is very useful in environments that have a lot of > unstructured queries where it is impossible to create indexes that > match all possible access conditions. Bitmap scans are useful even > with a single index, as they reduce the amount of random access > needed; a bitmap index scan is efficient for retrieving fairly large > fractions of the complete table, whereas plain index scans are not. isn't this BITMAP CONVERSION (TO|FROM ROWIDS) which I believe can already occur on regular indexes in SE (though I can't find a repeatable example anywhere) when Oracle decides to convert use two different index access paths, convert them to bitmaps and do a bitmap AND|OR and then do a bitmap to ROWID conversion back again, rather than being an implementation of bitmap indexes in SE. "Allow nonconsecutive index columns to be used in a multicolumn index (Tom) > > For example, this allows an index on columns a,b,c to be used in a > query with WHERE a = 4 and c = 10. " Again index skip scan already happens in 9iSE, this sounds like much the same thing On a more humorous note, here is one feature that I'm glad Oracle does > not support: > > "Make REINDEX DATABASE reindex all indexes in the database ". Might be a damn useful command for MSSQL though. -- Niall Litchfield Oracle DBA http://www.niall.litchfield.dial.pipex.com