diff --git a/src/libs/services/database/impl/Db.cpp b/src/libs/services/database/impl/Db.cpp index 827af0dd..f732cd9f 100644 --- a/src/libs/services/database/impl/Db.cpp +++ b/src/libs/services/database/impl/Db.cpp @@ -47,6 +47,12 @@ namespace Database prepare(); } + ~Connection() + { + // make use of per-connection usage stats to optimize + optimize(); + } + private: Connection& operator=(const Connection&) = delete; @@ -64,6 +70,13 @@ namespace Database LMS_LOG(DB, DEBUG) << "Setting per-connection settings done!"; } + void optimize() + { + LMS_LOG(DB, DEBUG) << "connection close: Running pragma optimize..."; + executeSql("pragma optimize"); + LMS_LOG(DB, DEBUG) << "connection close: pragma optimize complete"; + } + std::filesystem::path _dbPath; }; }