From 1b928ef6b2f5789a9ef7309debdbea62c6b5ee70 Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Fri, 6 Sep 2024 19:35:18 +0200 Subject: [PATCH] sqlite: execute PRAGMA optimize on startup Signed-off-by: Nicola Murino --- internal/dataprovider/sqlite.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/dataprovider/sqlite.go b/internal/dataprovider/sqlite.go index 5ab69394..7dc2f480 100644 --- a/internal/dataprovider/sqlite.go +++ b/internal/dataprovider/sqlite.go @@ -215,7 +215,7 @@ func initializeSQLiteProvider(basePath string) error { providerLog(logger.LevelDebug, "sqlite database handle created, connection string: %q", connectionString) dbHandle.SetMaxOpenConns(1) provider = &SQLiteProvider{dbHandle: dbHandle} - return nil + return executePragmaOptimize(dbHandle) } func (p *SQLiteProvider) checkAvailability() error { @@ -773,6 +773,14 @@ func (p *SQLiteProvider) normalizeError(err error, fieldType int) error { return err } +func executePragmaOptimize(dbHandle *sql.DB) error { + ctx, cancel := context.WithTimeout(context.Background(), defaultSQLQueryTimeout) + defer cancel() + + _, err := dbHandle.ExecContext(ctx, "PRAGMA optimize;") + return err +} + /*func setPragmaFK(dbHandle *sql.DB, value string) error { ctx, cancel := context.WithTimeout(context.Background(), longSQLQueryTimeout) defer cancel()