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
Im Folgenden sind die erforderlichen Rechte aufgeführt fürANALYZE:
Superuser
Benutzer mit dem ANALYZE Privileg
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 Fortschrittsinformationen über den ANALYZE Vorgang 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 mit einer einzigen table_name-Anweisung nicht mehr als einen ANALYZEtable_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 sich seit der letzten geändert haben, unter dem Analyseschwellenwert ANALYZE liegt. Weitere Informationen finden Sie unter Analyse-Schwellenwert.
Sie müssen die Amazon Redshift Redshift-Systemtabellen (STLund 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
-
Klauseln, die angeben, ob nur Prädikatspalten enthalten ANALYZE sein sollen. Geben Sie PREDICATE COLUMNS an, dass nur Spalten analysiert werden sollen, die in früheren Abfragen als Prädikate verwendet wurden oder die wahrscheinlich als Prädikate verwendet werden könnten. Geben Sie an, dass alle Spalten analysiert ALL COLUMNS werden sollen. Die Standardeinstellung ist ALLCOLUMNS.
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, z. B. weil die Tabelle noch nicht abgefragt wurde, werden alle Spalten analysiert, auch wenn PREDICATE COLUMNS dies angegeben ist. In diesem Fall antwortet Amazon Redshift möglicherweise mit einer Meldung wie „
Keine Prädikatspalten gefunden für“.
. Weitere Informationen zu Prädikatspalten finden Sie unter Analysieren von Tabellen.table-name
“. Analysiert alle Spalten -
Nutzungshinweise
Amazon Redshift wird automatisch ANALYZE auf Tabellen ausgeführt, die Sie mit den folgenden Befehlen erstellen:
-
CREATETABLEALS
-
CREATETEMPTABLEALS
-
SELECT INTO
Sie können keine externen Tabellen analysieren.
Sie müssen den ANALYZE Befehl für diese Tabellen nicht ausführen, wenn sie zum ersten Mal erstellt werden. Wenn Sie sie ändern, sollten Sie sie jedoch genauso wie andere Tabellen analysieren.
Analyse-Schwellenwert
Um die Verarbeitungszeit zu reduzieren und die Gesamtsystemleistung zu verbessern, überspringt ANALYZE Amazon Redshift eine Tabelle, wenn der Prozentsatz der Zeilen, die sich seit der letzten ANALYZE Befehlsausführung geändert haben, unter dem durch den analyze_threshold_percent Parameter angegebenen Analyse-Schwellenwert liegt. 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 eine Tabelle ANALYZE übersprungen wird, weil sie den Analyseschwellenwert nicht erreicht, 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, fragen Sie die STL_ANALYZE Systemtabelle ab.
Weitere Informationen zum Analysieren von Tabellen finden Sie unter Analysieren von Tabellen.
Beispiele
Analysieren Sie alle Tabellen in der TICKIT Datenbank und geben Sie Fortschrittsinformationen zurück.
analyze verbose;
Analysieren Sie nur die LISTING Tabelle.
analyze listing;
Analysieren Sie die VENUENAME Spalten VENUEID und in der VENUE Tabelle.
analyze venue(venueid, venuename);
Analysieren Sie nur Prädikatspalten in der VENUE Tabelle.
analyze venue predicate columns;