Это не то, чем вы можете эффективно управлять с уровня абстракции C ++ (другими словами, вы не можете точно знать, будет ли память, которую ваша программа выпустила для среды выполнения C ++, освободить для ОС или нет). Использование специальных политик выделения и нестандартных расширений для решения этой проблемы, вероятно, в любом случае не работает, поскольку вы не можете контролировать, как внешние библиотеки, которые вы используете, работают с памятью (например, если они кэшировали данные).
Возможным решением было бы перемещение части C ++ во внешний процесс , который завершается после создания баз данных SQLite. Наличие внешнего процесса вызовет некоторое раздражение (например, немного сложнее сохранить «живой» контроль над происходящим), но также открывает больше возможностей, таких как параллельная обработка, даже если библиотеки не поддерживают многопоточность или используют несколько машин по сети.