Die Abfrage friert ein - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Die Abfrage friert ein

Die Abfrage kann aus den folgenden Gründen einfrieren bzw. nicht mehr reagieren. Wir empfehlen, zunächst die folgenden Problembehebungsmaßnahmen durchzuführen.

Die Datenbankverbindung wird getrennt

Verringern Sie den MTU-Wert (Maximum Transmission Unit, maximale Größe für Übertragungseinheiten). Der MTU-Wert legt die maximale Größe für die Übertragung eines Datenpakets in einem Ethernetframe über die Netzwerkverbindung in Bytes fest. Weitere Informationen hierzu finden Sie unter Die Datenbankverbindung wird getrennt im Verwaltungsleitfaden von Amazon Redshift.

Zeitüberschreitung bei der Datenbankverbindung

Ihre Client-Verbindung mit der Datenbank scheint zu hängen oder Zeitüberschreitungen zu unterliegen, wenn lange Abfragen wie COPY-Befehle ausgeführt werden. Wenn dies der Fall ist, sehen Sie möglicherweise in der Amazon-Redshift-Konsole, dass die Abfrage abgeschlossen ist, aber das Client-Tool scheint die Abfrage noch nicht abgeschlossen zu haben. Je nachdem, wann die Verbindung unterbrochen wurde, fehlen möglicherweise Abfrageergebnisse oder sind unvollständig. Dieser Effekt kann auftreten, wenn Verbindungen im Leerlauf von zwischengelagerten Netzwerkkomponenten nach einer bestimmten Zeit getrennt werden. Weitere Informationen hierzu finden Sie unter Problem mit Firewall-Zeitüberschreitung im Verwaltungsleitfaden von Amazon Redshift.

Clientseitiger Speichermangelfehler bei ODBC

Wenn Ihre Clientanwendung eine ODBC-Verbindung verwendet und Ihre Abfrage eine Ergebnismenge erzeugt, die so groß ist, dass sie nicht in den Arbeitsspeicher passt, können Sie die Ergebnismenge unter Verwendung eines Cursors an die Clientanwendung übermitteln. Weitere Informationen erhalten Sie unter DECLARE und Überlegungen in Bezug auf die Leistung bei Verwendung von Cursors.

Clientseitiger Speichermangelfehler bei JDBC

Wenn Sie versuchen, umfangreiche Ergebnismengen über eine JDBC-Verbindung abzurufen, können clientseitig Fehler aufgrund von unzureichendem Arbeitsspeicher auftreten. Weitere Informationen finden Sie unter Festlegen des JDBC-Parameters für die Abrufgröße.

Potenzielles Deadlock-Problem

Versuchen Sie bei möglichen Deadlock-Problemen, wie folgt vorzugehen:

  • Zeigen Sie die Systemtabellen STV_LOCKS und STL_TR_CONFLICT an, um Konflikte zu identifizieren, bei denen mehrere Tabellen aktualisiert werden müssen.

  • Verwenden Sie die Funktion PG_CANCEL_BACKEND, um die Abfragen, die den Konflikt verursachen, abzubrechen.

  • Mit der Funktion PG_TERMINATE_BACKEND können Sie eine Sitzung beenden. Dabei werden alle Transaktionen, die zurzeit in der beendeten Sitzung ausgeführt werden, gezwungen, alle Sperren aufzuheben und für die Transaktionen ein Rollback auszuführen.

  • Planen Sie gleichzeitige Schreibvorgänge sorgfältig. Weitere Informationen finden Sie unter Verwalten gleichzeitiger Schreiboperationen.