Wenn die langsame Abfrageprotokollierung aktiviert ist, sehen wir eine große Menge von COMMIT
s, die mehr als zwei Sekunden in unserer Produktionsdatenbank benötigt. Bei der Untersuchung sind dies in der Regel einfache Transaktionen: Holen Sie eine Zeile, UPDATE
die Zeile, COMMIT
. Die SELECT
s und UPDATE
s in diesen bestimmten Transaktionen werden nicht als langsam protokolliert. Gibt es etwas, was wir tun können, oder Werkzeuge, die wir verwenden können, um den Grund für diese langsamen Commits herauszufinden? Wir laufen auf einer SSD und streamen zu einem Slave, wenn das einen Unterschied macht.
Postgres-Commits sind synchron. Dies bedeutet, dass sie warten, bis die WAL-Schreibvorgänge abgeschlossen sind, bevor sie zum nächsten übergehen. Sie können die WAL-Einstellungen in der Konfigurationsdatei anpassen, um dies anzupassen.
Sie können die Commit-Ebene auf asynchrone Sitzung / Benutzerlevel oder datenbankweit mit dem synchronen_commit in der Konfigurationsdatei festlegen.
Auf der Datenbankseite.
Saugen Sie Ihre Tabellen ab und aktualisieren Sie die Statistiken. Dies wird tote Tupel loswerden, da es viele Aktualisierungen geben wird.
%Vor%Tags und Links postgresql