Reorganize Database Indexes
...
Datenbankindizes reorganisieren
Die automatische Bereinigungsfunktion von Connect entfernt eine große Anzahl von Datensätzen, was zu einer Fragmentierung der entsprechenden Datenbankindizes führt. Um dieses Problem zu beheben, sollte das folgende SQL-Skript für die tägliche Datenbankwartung eingeplant werden:
Code Block | ||
---|---|---|
| ||
REINDEX TABLE "ContextIndices"; REINDEX TABLE "ContextLogs"; REINDEX TABLE "Contexts"; REINDEX TABLE "PerformanceRecords"; |
To reorganize all Connect application-specific indexes, use the following SQL scriptUm alle anwendungsspezifischen Indizes von Connect zu reorganisieren, verwenden Sie das folgende SQL-Skript:
Code Block | ||
---|---|---|
| ||
REINDEX TABLE "ConnectObjects"; REINDEX TABLE "ConnectObjectsHistory"; REINDEX TABLE "ContextIndices"; REINDEX TABLE "ContextLogs"; REINDEX TABLE "Contexts"; REINDEX TABLE "PerformanceRecords"; REINDEX TABLE "ScenarioRegistrations"; REINDEX TABLE "SecureStoreItems"; |
Delete Obsolete Data
...
Veraltete Daten löschen
Wenn alle Kontexte und Leistungsdatensätze, die vor einem bestimmten Datum erstellt wurden, gelöscht werden müssen, kann das folgende Skript verwendet werden. Beachten Sie, dass fragmentierte Indizes während des Löschvorgangs zu Leistungseinbußen führen können. Defragmentieren Sie bei Bedarf diese Indizes vor dem Löschen der Daten. Stellen Sie sicher, dass Sie das Datum in der ersten Zeile des Skripts nach Bedarf anpassen:
Code Block | ||
---|---|---|
| ||
DO $$ DECLARE delete_before DATE := '2000-12-31'; BEGIN DELETE FROM "Contexts" WHERE "FlowContextId" IN (SELECT "Id" FROM "Contexts" WHERE "FlowContextId" IS NULL AND "CreateTime" < delete_before); DELETE FROM "ContextIndices" WHERE "FlowContextId" IN (SELECT "Id" FROM "Contexts" WHERE "FlowContextId" IS NULL AND "CreateTime" < delete_before); DELETE FROM "ContextLogs" WHERE "FlowContextId" IN (SELECT "Id" FROM "Contexts" WHERE "FlowContextId" IS NULL AND "CreateTime" < delete_before); DELETE FROM "Contexts" WHERE "FlowContextId" IS NULL AND "CreateTime" < delete_before; DELETE FROM "PerformanceRecords" WHERE "Time" < delete_before; END $$; REINDEX TABLE "Contexts"; REINDEX TABLE "ContextIndices"; REINDEX TABLE "ContextLogs"; REINDEX TABLE "PerformanceRecords"; |
Reducing the size of the database
...
Verringerung der Größe der Datenbank
Das Löschen einer großen Datenmenge führt nicht unbedingt zu einer Verkleinerung der Datenbank. In diesem Fall ist es ratsam, die Datenbank anzuweisen, den nicht mehr benötigten Platz freizugeben. Dies kann mit dem folgenden SQL-Skript erreicht werden:
Code Block | ||
---|---|---|
| ||
VACUUM FULL; |
The VACUUM FULL command defragments and compacts the database reclaiming space occupied by deleted rows. After shrinking the database, it may be beneficial to reorganize the indexesDer VACUUM FULL-Befehl defragmentiert und kompaktiert die Datenbank, indem er den durch gelöschte Zeilen belegten Speicherplatz zurückgewinnt. Nach dem Verkleinern der Datenbank kann es von Vorteil sein, die Indizes zu reorganisieren.