Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Warum laufen meine Abfragen nach der Wartung von Amazon Redshift länger?
Meine Abfrage und die allgemeine Cluster-Leistung verschlechtern sich nach einem Wartungsfenster in Amazon Redshift.
Kurzbeschreibung
Während eines Versions-Upgrades löscht Amazon Redshift seinen Abfrage-Cache und seinen Kompilierungs-Cache. Wenn du nach dem Upgrade zum ersten Mal eine Abfrage ausführst, ist die Kompilierungszeit länger. Die Leistung verbessert sich jedoch allmählich, wenn Amazon Redshift seinen Cache neu erstellt.
Amazon Redshift ändert die Cluster-Versionen nicht für alle Wartungsfensteraktionen. Um Versionsänderungen zu identifizieren, überprüfe die Spalte redshift_version in der Tabelle SYS_QUERY_HISTORY.
Weitere Informationen zu den Cachetypen in Amazon Redshift findest du unter Ergebnis-Caching und Kompilierter Code. Weitere Informationen zur Abfrageleistung findest du unter Faktoren, die die Abfrageleistung beeinflussen.
Lösung
Analysiere die Abfrageleistung vor und nach der Wartung
Identifiziere die Abfragen, die vor und nach der Wartung ausgeführt wurden. Du kannst die Abfrageüberwachungskonsole oder die SYS_QUERY_HISTORY-Systemansicht verwenden.
Führe die folgende Abfrage aus, um die letzten 20 Benutzerabfragen zu finden:
SELECT * FROM sys_query_history WHERE user_id>1 ORDER BY start_time desc limit 20;
Verwende in der Ausgabe die Spalte user_query_hash, um Abfragen mit demselben Abfragetext zu vergleichen. Oder verwende generic_query_hash, um Abfragen mit einem ähnlichen Abfragetext, aber unterschiedlichen Abfrageliteralen zu vergleichen.
Führe die folgende Abfrage aus, um jedes Mal anzuzeigen, wenn du eine bestimmte Abfrage in den letzten 7 Tagen ausgeführt hast:
SELECT * FROM sys_query_history WHERE user_query_hash = 'ExampleText' ORDER BY start_time desc;
Hinweis: Ersetze ExampleText durch den Abfrage-Hashwert.
Vergleiche in der Ausgabe den Wert compile_time in verschiedenen Läufen. Die Kompilierzeit einer Abfrage, die du unmittelbar nach der Wartung ausgeführt hast, ist möglicherweise höher.
Um die Kompilierzeiten zu verkürzen, plane wichtige Abfragen so, dass sie nach der Wartung ausgeführt werden, oder bereite wichtige Abfragen außerhalb der Spitzenzeiten vor.
Hinweis: Die Engine zur Durchführung von Abfragen kompiliert unterschiedlichen Code für die Verbindungsprotokolle Java Database Connectivity (JDBC) und Microsoft Open Database Connectivity (ODBC). Wenn du zwei Clients hast, die unterschiedliche Protokolle verwenden, fallen für jeden Client die ersten Kosten für die Kompilierung des Codes an. Clients, die dasselbe Protokoll verwenden, teilen sich jedoch den zwischengespeicherten Code. Wenn du JDBC verwendest, um eine Verbindung zum Cluster herzustellen und eine Abfrage auszuführen, speichert Amazon Redshift den Cache nur für JDBC-Verbindungen. Wenn du dieselbe Abfrage auf einem Client ausführst, der ODBC verwendet, generiert Amazon Redshift einen weiteren Cache für die ODBC-Verbindung.
Probleme beheben
Manchmal, wenn Abfragekompilierungen vor und nach der Wartung kaum Unterschiede aufweisen, kann ein Leistungsproblem auftreten, das nichts damit zu tun hat. Verwende die Query and Database Monitoring-Konsole, um ungewöhnliche Spitzen bei den Metriken zu überwachen. Vergleiche die Kompilierzeiten, um die Ursache des Problems zu ermitteln.
Wenn du keine Spitzen feststellst, aber immer noch ein Problem hast, dann erstelle eine Support-Anfrage.
Ähnliche Informationen
- Themen
- Analytics
- Tags
- Amazon Redshift
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor 8 Monaten