Subject AW: [firebird-support] Big database, transactions and performance
Author Christian Waldmann
Hello Ann

Many thanks for your answer.

My design uses WITH LOCK and noWait transactions. So there is an
exception when the records is already in use. After a short period I
retry to access the record.

Is your proposal to use the queries without the LOCK and to catch the
exceptions when an update conflict arises? Is this less load for the

Happy holidays


[] Im Auftrag von Ann W. Harrison
Gesendet: Mittwoch, 23. Dezember 2009 19:31
Betreff: Re: [firebird-support] Big database, transactions and

Christian Waldmann wrote:
> In one table, I update all 100 records every 10 seconds. There is very
> little server load when there are no pending transactions. I use WITH
> LOCK to access this table.
> If there are pending transactions, the server load for the 100 updates
> increases slowly and after some hours, the server load of fbserver is
> 100%.

The WITH LOCK clause causes Firebird to update the records it accesses,
so you're creating a lot of back versions that need to be garbage
collected eventually. Do you really need that clause? Would it be
possible to handle deadlocks when they occur rather than incurring the
cost of garbage collection? The load you're putting on the system is
not very high aside from the locks.

Good luck,


[Non-text portions of this message have been removed]