Möchten Sie einige Tipps zur Verbesserung Ihrer Online-Postgres-Leistung erhalten? Im Folgenden finden Sie einige Datenbankkonfigurationsparameter, die zur Verbesserung der Gesamtleistung der Datenbank beitragen können.
Schritte
- 1 Stellen Sie einige Einstellungen für optimale Leistung ein:
- shared_buffers: Setzt die Shared-Memory-Buffer pro PG-Cluster. Passen Sie es groß genug an, um die am häufigsten verwendeten Tabellen / Indizes zu speichern, und klein genug, um eine Auslagerungsaktivität zu verhindern.
- work_mem: Steuert die Größe des Speichers, der für Sortier- und Hash-Operationen verwendet wird. Wenn nicht groß genug, wird die Sortierung auf die Festplatte übertragen. Um die korrekte Anpassung zu erleichtern, beobachten Sie den Postgres-Speicherort auf dem Datenträger: $ PGDATA / base / DBOID / pgsql_tmp. Speicher pro Sitzung zugewiesen. Angepasst pro Sitzung.
- work_maintenance_mem: Steuert den Speicherbedarf für DB-Wartungsvorgänge wie "Vakuum" und "Index erstellen". Kann die Zeit für die Durchführung solcher DB-Wartungsvorgänge drastisch reduzieren.
- effective_cache_size: Legt die Annahme des Optimierers fest, wie effektiv der O / S-Plattencache ist. Es reserviert nicht physisch Speicher. Passen Sie es mindestens auf 2/3 des verfügbaren Arbeitsspeichers an, um den Optimierer bei der Durchführung von Index-Scans über Tabellen-Scans (seqscan) zu beeinflussen.
- random_page_cost: Legt geschätzte Kosten für das nicht sequenzielle Abrufen fest. Verringern Sie den Wert, um den Optimierer zu beeinflussen, um Index-Scans über Tabellen-Scans durchzuführen.
- enable_indexscan: Wenn der Wert auf "true" gesetzt ist, bevorzugt der Abfrageoptimierer die Indexsuche über Tabellensuchen
- enable_seqscan: Wenn diese Option auf "true" gesetzt ist, favorisiert der Optimierer Tabellen- (sequenzielle) Scans über Index-Scans.
- enable_hashjoin: Wenn dieser Wert auf "true" gesetzt ist, bevorzugt der Optimizer die Verwendung von Hash-Joins.
- enable_nestloop: Wenn diese Eigenschaft auf "true" gesetzt ist, bevorzugt der Optimizer die Verwendung von Nested Loop-Joins.
- enable_mergejoin: Wenn diese Option auf "true" gesetzt ist, bevorzugt Optimizer die Verwendung von Merge-Joins. Wird zum Tunen / Testen von Abfragen verwendet. Hinweis: Bevor Sie sich für die Verwendung der Postgres-Optimizer-Hinweise (Schritt 6-10) in der Produktion entscheiden, sollten Sie die anderen Abfrageoptimierungsparameter (Schritt 1 bis 5) erneut aufrufen und die Feineinstellung vornehmen
- max_fsm_pages: Legt die maximale Anzahl von Festplattenseiten fest, für die in der freigegebenen Karte für freien Speicherplatz freier Speicherplatz verfolgt wird. Richtig nach oben einstellen, um das Vakuum schneller laufen zu lassen und die Notwendigkeit eines "Vakuum voll" oder "Reindex" zu reduzieren. Sollte etwas mehr sein als die Gesamtzahl der Datenseiten, die durch Updates berührt werden und zwischen den Vakua gelöscht werden. Benötigt wenig Speicher (6 Bytes pro Slot), also großzügig seine Größe anpassen. Wenn Sie Vakuum mit "verbose" Option ausführen, berät DB Engine Sie über die richtige Größe.
Facebook
Twitter
Google+