2017-12-16 5 views
0

Wenn ich meine Datenbank von PostgreSQL 9.6.5 auf PostgreSQL 10.1 mit pg_upgrade aufrüste, erleiden einige meiner Abfragen, die mehrere Tabellen betreffen, massive Leistungseinbußen.Massive Leistungseinbußen bei der Aktualisierung von PostgreSQL 9.6.5 auf 10.1

Das Ausführen derselben Abfrage auf genau denselben Daten mit exakt den gleichen Indizes in 10.1 dauert ungefähr 17 Sekunden, verglichen mit ungefähr 0,1 Sekunden in 9.6.

Mit Blick auf den EXPLAIN-Plan für die Abfrage kann ich sehen, dass der Plan zwischen den beiden Versionen sehr unterschiedlich ist - besonders für ein paar Unterauswahlen.

9.6 verwendet Indizes viel mehr als 10.1. 10.1 scheint vollständige Tabellen-Scans über die Indizes zu bevorzugen - sogar für Tabellen mit fast 1 Mio. Datensätzen.

Ich habe überprüft, dass die Indizes nicht während des Upgrades "verloren gegangen" sind. Auch wenn ich die Tabellen einzeln abfrage, werden die Indizes verwendet.

Irgendwelche Einsichten?

Danke, Sebastian

+2

Haben Sie (VACUUM) ANALYSE auf allen Tischen ausgeführt? – wildplasser

+0

Bitte geben Sie uns nur eine Beispielabfrage mit zwei Plänen - alt und neu - sonst ist ein solcher Beitrag sinnlos –

+1

Bitte ** [EDIT] ** Ihre Frage und fügen Sie die 'create table' Anweisungen für die betreffenden Tabellen hinzu (einschließlich aller Indizes) , die Abfragen, die Sie verwenden, und die Ausführungspläne, die mit ** 'explain (analyze, buffers)} generiert wurden. [** Formatierter Text **] (http://stackoverflow.com/help/formatting) bitte, [keine Screenshots] (http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-auf-so-wenn-eine-Frage stellen/285557 # 285557) –

Antwort

1

Gelöst von pg_dump/pg_restore statt pg_upgrade tun. Leistungs- und Abfragepläne sind wieder normal.

Verwandte Themen