ANALYZE - Amazon Redshift

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.

ANALYZE

Aktualisiert Tabellenstatistiken zur Verwendung durch den Abfrageplaner.

Erforderliche Berechtigungen

Für ANALYZE sind folgende Berechtigungen erforderlich:

  • Superuser

  • Benutzer mit der Berechtigung ANALYZE

  • Besitzer der Beziehung

  • Datenbankbesitzer, für den die Tabelle freigegeben wird.

Syntax

ANALYZE [ VERBOSE ] [ [ table_name [ ( column_name [, ...] ) ] ] [ PREDICATE COLUMNS | ALL COLUMNS ]

Parameter

VERBOSE

Eine Klausel, die Nachrichten zum Fortschritt in Bezug auf die Operation ANALYZE zurückgibt. Diese Option ist nützlich, wenn Sie keine Tabelle angeben.

table_name

Sie können spezifische Tabellen analysieren, einschließlich temporärer Tabellen. Sie können die Tabelle mittels ihres Schemanamens qualifizieren. Optional können Sie einen table_name angeben, um eine einzelne Tabelle zu analysieren. Sie können nicht mehr als einen table_name mit einer einzelnen Anweisung ANALYZE table_name angeben. Wenn Sie keinen table_name-Wert angeben, werden alle Tabellen in der aktuell verbundenen Datenbank analysiert, einschließlich der persistenten Tabellen im Systemkatalog. Amazon Redshift überspringt die Analyse einer Tabelle, wenn der Prozentsatz der Zeilen, die seit dem letzten ANALYZE-Vorgang geändert wurden, unter dem Analyseschwellenwert liegt. Weitere Informationen finden Sie unter Analyse-Schwellenwert.

Sie müssen Amazon-Redshift-Systemtabellen (STL- und STV-Tabellen) nicht analysieren.

column_name

Wenn Sie einen table_name angeben, können Sie auch eine oder mehrere Spalten in der Tabelle angeben (als durch Komma getrennte Liste in Klammern). Wenn eine Spaltenliste angegeben ist, werden nur die aufgelisteten Spalten analysiert.

PREDICATE COLUMNS | ALL COLUMNS

Klausel, die angibt, ob ANALYZE nur Prädikatspalten umfassen sollte. Geben Sie PREDICATE COLUMNS an, um nur Spalten zu analysieren, die in vorherigen Abfragen als Prädikate verwendet wurden oder wahrscheinlich als Prädikate verwendet werden. Geben Sie ALL COLUMNS an, um alle Spalten zu analysieren. Der Standardwert ist ALL COLUMNS.

Eine Spalte wird nur dann in den Satz der Prädikatspalten aufgenommen, wenn Folgendes zutrifft:

  • Die Spalte wurde in einer Abfrage als Teil eines Filters, einer Join-Bedingung oder einer Gruppe durch Klausel verwendet.

  • Die Spalte ist ein Verteilungsschlüssel.

  • Die Spalte ist Teil eines Sortierschlüssels.

Wenn keine Spalten als Prädikatspalten markiert sind, beispielsweise weil für die Tabelle noch keine Abfrage ausgeführt wurde, werden alle Spalten analysiert, auch wenn PREDICATE COLUMNS angegeben ist. Weitere Informationen zu Prädikatspalten finden Sie unter Analysieren von Tabellen.

Nutzungshinweise

Amazon Redshift führt automatisch ANALYZE für Tabellen aus, die Sie mit den folgenden Befehlen erstellen:

  • CREATE TABLE AS

  • CREATE TEMP TABLE AS

  • SELECT INTO

Sie können keine externen Tabellen analysieren.

Sie müssen den Befehl ANALYZE nicht für diese Tabellen ausführen, wenn sie erstellt werden. Wenn Sie sie ändern, sollten Sie sie jedoch genauso wie andere Tabellen analysieren.

Analyse-Schwellenwert

Um die Verarbeitungszeit zu reduzieren und die allgemeine Systemleistung zu verbessern, überspringt Amazon Redshift ANALYZE für eine Tabelle, wenn der Prozentsatz der Zeilen, die seit der letzten Ausführung des Befehls ANALYZE geändert wurden, niedriger als der durch den Parameter analyze_threshold_percent angegebene Analyseschwellenwert ist. Der Standardwert für analyze_threshold_percent ist 10. Um analyze_threshold_percent für die aktuelle Sitzung zu ändern, führen Sie den Befehl SET aus. Im folgenden Beispiel wird analyze_threshold_percent in 20 Prozent geändert.

set analyze_threshold_percent to 20;

Um Tabellen zu analysieren, wenn nur eine kleine Zahl von Zeilen geändert wurde, legen Sie analyze_threshold_percent auf eine beliebig kleine Zahl fest. Wenn Sie beispielsweise analyze_threshold_percent auf 0,01 festlegen, wird eine Tabelle mit 100.000.000 Zeilen nicht übersprungen, wenn mindestens 10.000 Zeilen geändert wurden.

set analyze_threshold_percent to 0.01;

Wenn ANALYZE eine Tabelle überspringt, weil der Analyseschwellenwert nicht erreicht wird, gibt Amazon Redshift die folgende Meldung zurück.

ANALYZE SKIP

Um alle Tabellen zu analysieren, auch wenn keine Zeilen geändert wurden, legen Sie analyze_threshold_percent auf 0 fest.

Um die Ergebnisse von ANALYZE-Vorgängen anzuzeigen, führen Sie für die Systemtabelle STL_ANALYZE eine Abfrage aus.

Weitere Informationen zum Analysieren von Tabellen finden Sie unter Analysieren von Tabellen.

Beispiele

Analysiert alle Tabellen in der Datenbank TICKIT und gibt Fortschrittinformationen zurück.

analyze verbose;

Analysiert nur die Tabelle LISTING.

analyze listing;

Analysiert die Spalten VENUEID und VENUENAME in der Tabelle VENUE.

analyze venue(venueid, venuename);

Analysiert nur Prädikatspalten in der Tabelle VENUE.

analyze venue predicate columns;