Subject | RE: [firebird-support] Firebird 2.04 |
---|---|
Author | Svein Erling Tysvær |
Post date | 2013-02-04T06:45:21Z |
>Hi everyoneIn addition to what Sean has already answered (well, I think it is part of what he answered when referring to database header statistics):
>
>We are using Firebird 2.04 Classic server at a client which has 40 databases and about 50 users >accessing them. Every once in a while we need to restart Firebird on the server as the >connections become very slow, as soon as it is restarted all is fine. It is Win2008 server, >64bit, 4 cores and 20gb ram.
>
>Is there a setting I can maybe make to make Firebird more stable.
How careful are you regarding your transactions? They are crucial in Firebird, and ONE transaction that runs for a long time without committing (commit retaining is not commit in this sense) can be enough to make things unbearably slow over time.
The reason for transactions being that vital, is that the database looks different for the old transaction than for new transactions. Changes made after the old transaction was started should not be visible to the old transaction, so Firebird cannot physically modify or delete records until they are no longer visible for any transaction. Using versioning of records has the benefit that readers never block anybody and writers never block readers (only writers can block writers), but requires proper transaction management.
HTH,
Set