Häufig gestellte Fragen - AWS Präskriptive Leitlinien

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 finden Sie in der PostgreSQL-Dokumentation.

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 finden Sie in der PostgreSQL-Dokumentation.

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 finden Sie in der PostgreSQL-Dokumentation.

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 finden Sie in der PostgreSQL-Dokumentation.

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 VOLATILE Funktion 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 STABLE Funktion 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, eine VOLATILE Funktion in einer Indexscanbedingung zu verwenden.)

  • UNVERÄNDERLICH — Eine IMMUTABLE Funktion 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. Beispielsweise SELECT ... WHERE x = 2 + 2 kann 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 finden Sie in der PostgreSQL-Dokumentation.