We have a database that continually grows and in the process, sufferers a performance hit once it gets a little big. We found that every 3 or 4 weeks there is a pressing need to stop the database, run GBAK to perform a backup/restore. This shrinks the database quit a bit and greatly improves our performance. Is there a way to manually perform the same functions as QBAK, through stored procedures or SQL calls to do the same job, but with out having to stop our database ? We've already verified that we're properly committing everything, and garbage collections are running, this is just not enough on its own.
One of our tables has a extremely high rate of record deletions, does firebird have an equivalent to Optimize table ?
If the case is you have 200,000 uncommited transactions how can you get these either to commit or how are you able to remove them, we have a fb 1.5.3 database that has doubled in size it looks as though this may be the problem.
To commit or rollback
gfix -commit all <db>
gfix -rollback all <db>
To manually run garbage collector if required
gfix -sweep <db>
I hope that helps you