Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Strategie zur Verbesserung der Leistung von Oracle DELETE

Das Löschen von Daten ist eine Höllenarbeit für die Datenbank. Es muss Before-Images erstellen, Indizes aktualisieren, Redo-Logs schreiben und die Daten entfernen. Dies ist ein langsamer Prozess. Wenn Sie ein Fenster haben können, um diese Aufgabe auszuführen, ist es am einfachsten und schnellsten, neue Tabellen zu erstellen, die die gewünschten Daten enthalten. Löschen Sie die alten Tabellen und benennen Sie die neuen Tabellen um. Dies erfordert einige Einrichtungsarbeiten, die offensichtlich, aber sehr gut möglich sind. Ein weniger drastischer Schritt besteht darin, die Indizes zu löschen, bevor das Löschen stattfindet. Meine Stimme würde für CTAS (Create Table As Select from) gehen und die neuen Tabellen bauen. Ein nettes Partitionierungsschema wäre sicherlich hilfreich, vielleicht kann Oracle im nächsten Release Intervall- und Referenzpartitionierung kombinieren. Es wäre sehr nett zu haben.

Das Deaktivieren der Protokollierung ... kann nicht für Löschungen durchgeführt werden, aber CTAS kann nologging verwenden. Erstellen Sie eine Sicherungskopie, wenn Sie fertig sind, und stellen Sie sicher, dass Sie die Datendateien in die Standby-Datenbank übertragen, falls Sie eine haben.