From: Chris Porter Date: Sun, 17 Jan 2016 15:34:52 +0000 (+0000) Subject: CHANSERV: fix 7h cleanup time X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/1a17d1db4a84f1d37dc25c76be4aa9bc84ff3e83 CHANSERV: fix 7h cleanup time --HG-- branch : chanserv-live --- diff --git a/chanserv/chanserv_cleanupdb.c b/chanserv/chanserv_cleanupdb.c index 5de7f280..210c99eb 100644 --- a/chanserv/chanserv_cleanupdb.c +++ b/chanserv/chanserv_cleanupdb.c @@ -206,8 +206,14 @@ static void cleanupdb(void *arg) { /* This query returns a single column containing the userids of all users * who have active sessions now, or sessions which ended in the last * CLEANUP_ACCOUNT_INACTIVE days. */ + + dbquery("BEGIN TRANSACTION;"); + + /* increase memory for aggregate (GROUP BY) -- query can take hours if this spills to disk */ + dbquery("SET LOCAL work_mem = '512MB';"); q9cleanup_asyncquery(cleanupdb_real, NULL, - "SELECT userID from chanserv.authhistory WHERE disconnecttime=0 OR disconnecttime > %d GROUP BY userID", to_age); - + "SELECT userID from chanserv.authhistory WHERE disconnecttime=0 OR disconnecttime > %d GROUP BY userID;", to_age); + dbquery("COMMIT;"); + cleanupdb_active=1; }