Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Häufig gestellte Fragen
Hier finden Sie Antworten auf häufig gestellte Fragen zur Optimierung der Abfrageleistung.
Was ist EXPLAIN?
EXPLAINist ein Schlüsselwort, das Sie einer PostgreSQL-Abfrage (SELECT,,DELETE) voranstellen UPDATEINSERT, um einen Abfrageplan zu generieren. Der PostgreSQL-Abfrageplan beschreibt, wie die Datenbank die Abfrage ausführen will. Dieser Plan enthält Informationen zur Reihenfolge eines Tabellenscans, zur Indexnutzung und zu Verknüpfungen.
Verwenden Sie den Abfrageplan, um potenzielle Engpässe zu identifizieren, Abfragen zu optimieren und die Gesamtleistung zu verbessern. Berücksichtigen Sie bei der Überprüfung des Abfrageplans die folgenden Faktoren:
-
Ansätze für den Tabellenzugriff
-
Ansätze verbinden
-
Filterbedingungen
-
Operationen sortieren
-
Verwendung des Indexes
-
Parallelism
-
Statistiken
-
Kostenschätzungen
-
Aus jedem Schritt abgerufene Zeilen
-
Datenverteilung
Weitere Informationen zu EXPLAIN
Was ist EXPLAIN ANALYZE?
Wenn Sie einer Abfrage EXPLAIN ANALYZE voranstellen und die Abfrage ausführen, führt PostgreSQL die Abfrage aus und gibt sowohl den Abfrageplan als auch die Laufzeitstatistiken zurück. Die tatsächliche Laufzeit, die in jedem Schritt verarbeiteten Zeilen und andere relevante Informationen werden zusammen mit dem Abfrageplan angezeigt. Die Verwendung EXPLAIN ANALYZE in einer Produktionsdatenbank sollte mit Vorsicht erfolgen, da das Ausführen der Abfrage die Datenbankleistung während der Analyse beeinträchtigen könnte.
Weitere Informationen zu EXPLAIN ANALYZE
Was ist Kollation in PostgreSQL?
In PostgreSQL ist eine Kollation eine Reihe von Regeln, mit denen bestimmt wird, wie Zeichenketten verglichen und sortiert werden. Die Sortierung definiert die Reihenfolge, in der Zeichen bei Vergleichen berücksichtigt werden, wobei sprachspezifische Regeln und Konvertierungen berücksichtigt werden.
Weitere Informationen zur Sortierung
Was ist ein CTE?
In einer PostgreSQL-Datenbank ist ein Common Table Expression (CTE) eine benannte temporäre Ergebnismenge, auf die Sie verweisen können. CTEs bieten eine Möglichkeit, lesbarere und modularere SQL-Abfragen zu erstellen, indem sie komplexe Logik in kleinere, benannte Einheiten zerlegen.
Weitere Informationen zu CTEs
Was sind die Kategorien von Funktionen in PostgreSQL?
Jede PostgreSQL-Funktion hat eine Volatilitätsklassifizierung, wobei die Möglichkeiten sindVOLATILE,STABLE, oder: IMMUTABLE
-
VOLATILE — Eine
VOLATILEFunktion kann alles tun, auch die Datenbank modifizieren. Sie kann bei aufeinanderfolgenden Aufrufen mit denselben Argumenten unterschiedliche Ergebnisse zurückgeben. Der Optimierer macht keine Annahmen über das Verhalten solcher Funktionen. Eine Abfrage, die eine flüchtige Funktion verwendet, bewertet die Funktion in jeder Zeile neu, in der ihr Wert benötigt wird. -
STABLE — Eine
STABLEFunktion kann die Datenbank nicht ändern. Sie gibt garantiert dieselben Ergebnisse zurück, wenn dieselben Argumente für alle Zeilen innerhalb einer einzigen Anweisung angegeben werden. Wenn Sie diese Klassifizierung verwenden, kann der Optimierer mehrere Aufrufe der Funktion auf einen einzigen Aufruf optimieren. Insbesondere ist es sicher, einen Ausdruck, der eine solche Funktion enthält, in einer Indexscanbedingung zu verwenden. (Da bei einem Indexscan der Vergleichswert nur einmal und nicht einmal in jeder Zeile ausgewertet wird, ist es nicht zulässig, eineVOLATILEFunktion in einer Indexscanbedingung zu verwenden.) -
UNVERÄNDERLICH — Eine
IMMUTABLEFunktion kann die Datenbank nicht ändern und gibt garantiert für immer dieselben Ergebnisse zurück, wenn dieselben Argumente verwendet werden. Wenn Sie diese Klassifizierung verwenden, kann der Optimierer die Funktion vorab auswerten, wenn eine Abfrage sie mit konstanten Argumenten aufruft. BeispielsweiseSELECT ... WHERE x = 2 + 2kann eine Abfrage auf Sicht vereinfacht werden, weil die FunktionSELECT ... WHERE x = 4, die dem Integer-Additionsoperator zugrunde liegt, markiert ist.IMMUTABLE
VOLATILEist die Standardeinstellung, wenn der CREATE FUNCTION Befehl keine Kategorie angibt. Weitere Informationen zu Funktionstypen