|Subject||Re: [firebird-support] Re: Awaiting Garbage Collector|
|Author||Carlos H. Cantu|
This is how Versioning/MVCC works.
PS: Probably the reason for Sinnatica showing increasing numbers, even when you have just one transaction open in your app, is because Sinnatica needs to start a new transaction every time it needs to refresh its statistics.
Firebird Performance in Detail - http://videos.firebirddevelopersday.com
www.firebirdnews.org - www.FireBase.com.br
Regarding the Awaiting GC issue I've done another test:
1- Connect to the database in a test environment, isolated from the rest of users from production environment. with IBExpert or another database manager. Only one connection.
2- Monitor tha database with Sinatica Monitor to get number of active transactions, attachments and statements. At this moment only 1 connection is showed in Sinatica. 2 statements that are querys to system tables, I supose form IBExpert connection, 0 awaiting GC and 1 awaiting Sweep.
3- Run a query SELECT * FROM CALENDAR WHERE EVENT_ID=132465 which only returns a record. I did not COMMIT that.
4- Now SINATICA shows how AWAITING GC is increasing by 1 or 2 every second. In a minute it shows more than 100 Awaiting GC.
5- COMMIT and now SINATICA shows AWAITING GC is again 0.
I did the same thing with EMS SQL MANAGER and the result is the same. Leaving an interesting transaction on a single record table generates a big amount of garbage.
Is that normal?