Skip to content

Commit 0261c77

Browse files
committed
Added additional indexes to speed up DELETE query of old jobs
The query in ExpirationManager already has an index to use on the "counter" table, but not the related tables as per ExpirationManager.ProcessedTables (counter, job, list, set, hash)
1 parent ac81be8 commit 0261c77

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
SET search_path = 'hangfire';
2+
3+
DO
4+
$$
5+
BEGIN
6+
IF EXISTS (SELECT 1 FROM "schema" WHERE "version"::integer >= 15) THEN
7+
RAISE EXCEPTION 'version-already-applied';
8+
END IF;
9+
END
10+
$$;
11+
12+
CREATE INDEX ix_hangfire_job_expireat ON "job" (expireat);
13+
CREATE INDEX ix_hangfire_list_expireat ON "list" (expireat);
14+
CREATE INDEX ix_hangfire_set_expireat ON "set" (expireat);
15+
CREATE INDEX ix_hangfire_hash_expireat ON "hash" (expireat);
16+
17+
RESET search_path;

tests/Hangfire.PostgreSql.Tests/PostgreSqlInstallerFacts.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void InstallingSchemaUpdatesVersionAndShouldNotThrowAnException()
2020
PostgreSqlObjectsInstaller.Install(connection, schemaName);
2121

2222
var lastVersion = connection.Query<int>(@"select version from """ + schemaName + @""".""schema""").Single();
23-
Assert.Equal(14, lastVersion);
23+
Assert.Equal(15, lastVersion);
2424

2525
connection.Execute($@"DROP SCHEMA ""{schemaName}"" CASCADE;");
2626
});

0 commit comments

Comments
 (0)