> We are always willing to discuss changes that improve performance,
> reliability, standards compliance, etc. However, "MS SQL does it, and MS
> SQL is fast" is not sufficient proof that a feature would improve average
> performance in PostgreSQL. This issue has been brought up with similarly
> unsatisfactory arguments in the past, so you should be able to find out
> about the discussion in the archives. Some of the arguments against this
> change were bigger indexes, slower write operations, non-existent proof
> that it's really faster, putting the index on a different disk will mostly
> obsolete the issue. Consequently, this is currently not something that
> has got a chance to be implemented anytime soon.
I personally would like to have index scans that look up heap rows
record the heap expired status into the index entry via one bit of
storage. This will not _prevent_ checking the heap but it will prevent
heap lookups for index entries that have been exipred for a long time.
However, with the new vacuum, and perhaps autovacuum coming soon, may be
little need for this optimization.
The underlying problem the user is seeing is how to _know_ an index
tuple is valid without checking the heap, and I don't see how to do that
unless we start storing the transaction id in the index tuple, and that
requires extra storage.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026