Tony Toews said:
I thought most database systems worked that way though.
"Most database systems" is a "tall order" for me to know about. Some
database systems perform something similar to compact and repair "in the
background" as they perform other work, either default or optionally, so you
don't have to take explicit action (I've been told that option can be
selected on recent versions of MS SQL Server, and believe that was the case
back in the 1990s for Informix, as well). Server databases, especially
those for applications deemed "mission-critical", have to be available
(essentially) 24/7, and doing this in the background allows them to be
available 24/7.
Some long years ago, I wrote the "Data Base Handler" in IBM 360 Assembler
Language which, er, "handled the database" for a real-time system for
performing transactions. It certainly was a far cry from a "full-featured"
database, but it looked up necessary information, recorded actions, and made
a record of transactions for the remote systems for which it was acting as a
proxy. It returned each block of memory (RAM and disk records) to the
system for re-use, immediately, as soon as the information in the block was
deleted.
I worked on other mainframe application systems in which, at an appropriate
time in a daily schedule, the system was made unavailable so "file
maintenance" could be performed -- one of these, interestingly, used
mainframe ISAM, so it was, indeed, very much like "compact". In that
environment, it was termed "reorganizing the files".
Larry Linson
Microsoft Office Access MVP