Subject | Re: Firebird DB Size |
---|---|
Author | Adam |
Post date | 2005-07-27T23:52:26Z |
--- In firebird-support@yahoogroups.com, "Ann W. Harrison"
<aharrison@i...> wrote:
Well there you go, you do learn something new every day. In any case,
if the transactions are not managed, then modifying BLOB fields will
be a huge problem, because old transactions effectively prevent the
old BLOB from being garbage collected.
Still, it is good to know that you don't have to move BLOB fields to
a different table to achieve this result.
Adam
<aharrison@i...> wrote:
> Adam wrote:When you
> >>
> >>Is there any thing to decrease DB size?
> >>
> >
> > Firebird is a multi-generational architecture database (MGA).
> > change a field, it makes a copy of the record rather thanchanging the
> > existing record.to
>
> That's true in general, but blobs are not handled like other data.
> Unless you modify the blob field, all versions of the record point
> the same instance of the blob. When a record is garbage collected,part
> of the process checks whether the blob is referenced in recordversions
> that persist, in which case the blob is not removed. So if youhave a
> record that contains a blob and modify only non-blob fields,there's one
> copy of the blob. If you modify the blob field, then you get asecond
> copy of the blob and the first copy will eventually be garbagecollected.
>Thanks Ann (and Ivan),
> Regards,
>
>
> Ann
Well there you go, you do learn something new every day. In any case,
if the transactions are not managed, then modifying BLOB fields will
be a huge problem, because old transactions effectively prevent the
old BLOB from being garbage collected.
Still, it is good to know that you don't have to move BLOB fields to
a different table to achieve this result.
Adam