Subject Re: [firebird-support] Re: Awaiting Garbage Collector
Author Walter R. Ojeda Valiente
Hello Alexey

Your presentation is an excellent work, as ever.

I had wrote an article in my blog about it:

You had explained very well everything and all can be easily understood. Thank you very much for such presentation.

I have just one doubt, and it is with page 46.

Can you explain me that page, please?

Thanks in advance.


On Mon, Mar 23, 2015 at 8:27 AM, Alexey Kovyazin ak@... [firebird-support] <> wrote:


Unfortunately, your experiments are not useful at all, since you are using complex GUI tools, which run background queries in the frames of implicit transactions to get metadata information, etc.
If you really want to do clean experiments with Firebird transactions, use only isql.exe, and run queries to your tables and MON$ tables there.

Also, look into this presentation

Alexey Kovyazin


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?