Hallo,
hier sind die ersten recht interessanten Ergebnisse:
Ich habe zuerst Himitsus Abfrage versucht. Es gab einen Unterschied von ca. 500 ms.
Dann habe ich mich an die conf-Datei gemacht und den Server mehr Ressourcen gegeben. Das führte dazu, dass der Server die Abfrage nun in
4,3 Sekunden ausführt. Beeindruckend! Danach gab es allerdings keinen Unterschied zwischen beiden Abfragen mehr. Ich habe für dieses Ergebnis folgende Parameter geändert und um ca. 30 % erhöht:
# - Memory -
shared_buffers = 512 -> 768MB # min 128kB
temp_buffers = 32 -> 128MB # min 800kB
work_mem = 16 -> 32MB # min 64kB
maintenance_work_mem = 16 -> 64MB # min 1MB
max_stack_depth = 2MB # NICHT GEÄNDERT
1.) Kann mir jemand von Euch optimalere Werte bei einem System mit 8 GB
RAM und mechanischer Server-Platte (hohe Umdrehungszahl + gespiegelt) sowie für eine SSD nennen? Mir fiel auf, dass das System durch die geänderten Werte nun kaum noch CPU für diese Abfrage benötigt. Vorher war die Last anhaltend 100%. Ich versuche es nachzuvollziehen, um das Verhalten eventuell auch für andere Abfragen verstehen zu können.
2.) Was kann ich nun noch mit Indizes versuchen? Besteht hier noch eine Möglichkeit etwas herauszuholen? Optimal für den Anwender wäre ein Zeitwert von ca. 1 Sekunden für eine solche Abfrage. Mir ist klar, dass das schon sehr gewagt ist, allerdings wären Hardware-Erweiterungen auch noch möglich (
RAM, HDD, CPU).
3.) Was bewirken die Planner-Einstellungen bzw. wie oder was muss ich tun um den Planner einzustellen? Zeitplan? Oder macht er das automatisch. Ich werde parallel noch etwas die Suchmaschine dazu bedienen, da ich Postgre bisher fast immer nur in seiner Standard-Einstellung genutzt habe.
Viele Grüße und besten Dank
Seb