Subject IBObject SavePoint method
Author innoy1k
Hi there,

SavePoint method does commit retaining, and I believe the old records
created from SavePoint were prevented garbage collection, and so we
are experiencing database size ballooning from our Delphi software.
The worst case we had is from 23MB to 4GB in a few weeks time. Through
IBConsole, we did the following to this ballooned database:

1) a database sweep, but the database file size stays the same.
2) a database backup/restore, and the database file size was reduced
from 4GB to some MBs.

My questions are:

i) We know a proper database design will be using transaction with
explicit commit. However, apart from re-design the software, and/or
using IBConsole tools, does IBObject provides a way to garbage
collect the old records created from SavePoint? Are these old records
remain interesting in the database?

ii) Did the Sweep process clean up the old records that were prevented
garbage collection from Savepoint. In the Help document, it states
that the Sweep process guarantees all records that are garbage
collected, including those that were rolled back. Are there any
differences on old records created from Savepoint and Rollback?

thanks & regards,
Duncan