> > > But how Oracle handles this?
> >
> > Oracle doesn't have non-overwriting storage manager but uses
> > rollback segments to maintain MVCC. Rollback segments are used
> > to restore valid version of entire index/table page.
> 
> Are there any plans to have something like this? I mean 
> overwriting storage manager.

Well, I have plans to reimplement storage manager to allow space
re-use without vacuum but without switching to overwriting, at least
in near future - achievements/drawbacks are still questionable.

We could add transaction data to index tuples but this would increase
their size by ~ 16bytes. To estimate how this would affect performance
for mostly statical tables one can run tests with schema below:

create table i1 (i int, k int, l char(16));
create index i_i1 on i1 (i);
create table i2 (i int, k int, l char(16));
create index i_i2 on i2 (i, k, l);

Now fill tables with same data and run queries using only "I" in where
clause.

Vadim

Tue, 23 Jan 2001 14:20:34 -0800
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
RE: Does Oracle store values in indices?
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM> writes:
> We could add transaction data to index tuples but this would increase
> their size by ~ 16bytes.

The increased space is the least of the drawbacks.  Consider also the
time needed to maintain N copies of a tuple's commit status instead of
one.  Even finding the N copies would cost a lot more than the single
disk transfer involved now ...

			regards, tom lane

Tue, 23 Jan 2001 18:01:19 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: Does Oracle store values in indices? 