Subject | Re: Limitting maximum database file size |
---|---|
Author | cg_bland |
Post date | 2003-06-22T13:06:06Z |
Bisma,
The problem you are experiencing may be to do with using "commit
retain", rather than commit. Commit retain, does, I believe, cause
all the interim versions to be saved, which would cause the bloat. A
commit may stop this happening.
Cheers
Chris
--- In firebird-support@yahoogroups.com, "Bisma Jayadi" <bisma@b...>
wrote:
The problem you are experiencing may be to do with using "commit
retain", rather than commit. Commit retain, does, I believe, cause
all the interim versions to be saved, which would cause the bloat. A
commit may stop this happening.
Cheers
Chris
--- In firebird-support@yahoogroups.com, "Bisma Jayadi" <bisma@b...>
wrote:
> Hi Helen,please
>
> > Unfortunately, you are looking for a file-based database to do
> > what you want, and a transaction-driven, multi-generational
> > database is not designed to do it.
>
> Hmmm.. how if I compare it with another RDBMS, say DB2. AFAIK,
> CMIIW, DB2 also able to do what Firebird can do without growing theFirebird is
> database file size. What is muti-generational database? Why
> designed using it?the
>
> > That said, the times and sizes you report at least show that
> > something is terribly wrong with what you are doing. If you
> > can get past the need you perceive to not hold back-versions
> > (which Firebird does to protect your data in a multi-user
> > environment) we can give some guidance on how to prevent your
> > database from growing so much and from degrading in
> > performance.
>
> Alright, maybe I did something wrong with my application. FYI, I'm
> building a database application with Kylix 3. I'm using dbExpress
> component (TSQLConnection and TSQLQuery, for precisely) to access
> database. In pseudo-code, this is what my application do:ludicrous.
>
> ---
> 1: open database connection;
> 2: for i = 1 to some_limit do
> 3: for j = 1 to some_limit do
> 4: begin
> 5: update one_table set one_field = a_value;
> 6: select some_records from some_fields
> where match_conditions;
>
> 7: do something; // no database access here.
>
> 8: for k = 0 to result_set_record_count - 1 do
> 9: begin
> 10: update one_table set one_field = a_value
> where match_conditions;
> 11: commit retain;
> 12: end;
> 13: end;
> 14: close database connection;
> ---
>
> > 6 mins for 50,000 updates is ludicrous and for it to keep
> > getting worse means your client environment is killing the
> > garbage collection.
>
> I'm definitely agree with you, 6 mins for 50,000 updates is
> But, that's what really happening to my database and application.minimize the
>
> From Paul Beach, I got this trick. He said this command can
> effect of garbage collection. Here is the command: SET TRANSACTIONREAD
> COMMITTED NO RECORD_VERSION. What do you think about it?you in
>
> I need help to overcome this problem, as newbie in Firebird, I can't
> figure it out myself. For any kind of respons and helps, I thank
> advance.
>
> -Bee-
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.486 / Virus Database: 284 - Release Date: 29-05-2003