Subject Re: Normalisation + performance
Author Svein Erling Tysvær
--- In firebird-support@yahoogroups.com, "lysander_fb" wrote:
> If you change only 1 field in a biiiiig table with a long running
> transaction or even a "dead" transaction, then many more parts than
> necessary of the database will be "blocked", and not marked for
> garbage collection.
>
> If you change the same field in one of many smaller tables and your
> transaction goes to Nirvana, you still have a problem, but this
> problem will be much smaller.
>
> someone slap me, if I am telling nonsense here; am only working with
> Firebird for 5-6 months.

Hi André,
why didn't you wait until I was angry before telling nonsense? I don't
want to slap you...

The nonsense bit is that it is at the transaction level things cannot
be garbage collected, neither at record nor field level. If you
changed the value of one field and then an older transaction did

select <otherfields> from <somewhere>
where <changedfield> = <oldvalue>

you might need the old values of <otherfields> as well as the
<changedfield> (depending on transaction settings).

If I misunderstood you, and you only wanted changes to be allowed to
other fields if those fields weren't already modified in the record in
question, then it is a completely different matter. In some cases
fields are completely independant, in other cases they may not be. I'm
not qualified and don't have time to consider the possible impacts of
all possible consequences if this was changed, and am happy with how
things currently work.

Set