Subject Re: Controlling expansion of database file / grow-by option?
Author Svein Erling Tysvær
--- In firebird-support@yahoogroups.com, "Alan McDonald" wrote:
> > Hi Svein,
> >
> > Wow, this sounds pretty serious. We use the Firebird ODBC driver,
> > and I checked our connection attributes... and I found
> >
> > SQL_ATTR_AUTOCOMMIT=1
> >
> > I'm guessing this means the ODBC driver is doing a "soft commit"?
> > I'll have to peek at the source :)
> >
> > Thanks again!
> >
> > David
>
> this means that with the issue of any single statement not
> specifically wrapped in start/end transaction statements, that
> single statment will be hard committed as soon as it executes. It
> does not mean that it is soft commited.
> Alan

Thanks Alan! Nice that the group put things in order when something
wrong is written. My experience is with IBO (not ODBC), and with soft
commits I was referring to cases when you traverse a cursor committing
as you go by, but without actually getting the cursor to get to the
end of the dataset to do a hard commit.

Any decent component (IBO is such a component set) should of course
use a hard commit rather than a soft commit with autocommit once it
reaches the end of a dataset, problems mainly occur when you don't get
to the end of the dataset.

But if your data file is huge compared to the backup file, then I
still think there's something wrong with long-running or not hard
committed transactions.

Set

> > --- In firebird-support@yahoogroups.com, Svein E. Tysvær wrote:
> >
> > > [...] autocommit
> > > is a problem (speedwise, the result is identical to a
> > > long-running transaction). It does ensure that data won't be
> > > rolled back, but it doesn't allow the oldest active transaction
> > > to move forward. The result is that your database grows because
> > > it has to store every version of every record. If you have a
> > > small database with few updates, then you're fine, otherwise
> > > your queries gradually become slower until your database becomes
> > > useless.