Subject Firebird 3 - Auto Garbage collection with Sweep interval = 0
Author Arnaldo Caliari
Hi guys,

maybe i have always misunderstood the garbage collection mechanism, the
sweep interval, etc.. and i'm realising only now, but:

I have this database (Firebird 3.03 SuperServer x64)

Gstat execution time Thu Feb 15 05:00:01 2018

Database header page information:
    Flags            0
    Generation        486
    System Change Number    0
    Page size        4096
    ODS version        12.0
    Oldest transaction    356
    Oldest active        357
    Oldest snapshot        357
    Next transaction    471
    Sequence number        0
    Next attachment ID    58
    Implementation        HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC
    Shadow count        0
    Page buffers        0
    Next header page    0
    Database dialect    3
    Creation date        Feb 14, 2018 22:50:34
    Attributes        force write

    Variable header data:
    Sweep interval:        0
    *END*

In this db i have 2/3 tables with this situation

    Average record length: 342.71, total records: 57221
    Average version length: 12.05, total versions: 272433, max versions: 23
    Average fragment length: 27.78, total fragments: 15232, max
fragments: 1
    Average unpacked length: 1331.00, compression ratio: 3.88

    Average record length: 107.21, total records: 279298
    Average version length: 9.06, total versions: 348294, max versions: 6
    Average fragment length: 7.71, total fragments: 39741, max fragments: 1
    Average unpacked length: 247.00, compression ratio: 2.30

My question is : why garbage collection mechanism starts automatically
when i browse these tables, despite the fact that i have Sweep Interval
= 0 ? What is the point that i'm missing ?


Thanks, ciao !

Arnaldo