I am filling a small Firebird database with mostly filesystem data with a remote php script. The final size of the database is about 16 MB, but while I am filling it, Firebird's memory consumption quickly increases and finally maxes the 4GB virtual machine it is working on.
The database is nothing special, 4 tables, no more than 90 thousand records per table, several varchar(128) and varchar(256) fields.
Statements are mostly 'insert into' with verbatim values (no prepared / parametrized statements). Single remote connection, multiple transactions.
Server is 5.0.3, running on a Rocky 10 VM, firebird.conf is empty but for the 'server mode'. Tried super and superclassic, does not make real difference. When I look into MON$statements and MON$compiled_statements I see tens of thousands records, likely all statements coming from the remote connection.
What is happeining here? Is this expected? What is all this RAM used for - statements that have been already executed?