>>>>> "MM" == Mike Matrigali <[EMAIL PROTECTED]> writes:
MM> 1.) is done today, as I was trying to say in the note. We currently
MM> maintain a bit map that either marks pages as completely empty,
MM> or "somewhat" empty. Both sets of pages are used when doing
MM> inserts. There may be more work to get the "somewhat" empty
MM> pages to be used more.
So the question here is the definition of "somewhat" empty?
MM> 2.) As you say, space is never returned to the OS unless the compress
MM> system procedures are called manually.
It would be very nice if one would be able to do this automatically.
I guess the major problem is that since this involves moving records
between pages, one will have to update index references. Doing this
row by row will be more expensive than first make a compressed version
of the table and then rebuild its indexes on this copy.
One idea I have is to only lazily update an index when a record is
moved. Instead, a mapping between previous and current record id will
be recorded. When an outdated index entry is used, this could be
detected and remapped to the new record id. A background thread could
sequentially scan the index and update outdated references. This
would be more efficient than an index look-up for each record that is
moved.
--
Øystein