Query Profiler - 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.

Query Profiler

In diesem Dokument wird Query Profiler beschrieben, ein grafisches Tool zur Analyse der Komponenten und der Leistung einer Abfrage.

Query Profiler ist ein Feature für die Überwachung und Fehlerbehebung von Abfragen, das in der Amazon-Redshift-Konsole angezeigt werden kann. Es ist sehr nützlich für die Analyse der Abfrageleistung. Der primäre Zweck besteht darin, eine visuelle und grafische Ausführungsreihenfolge, einen Ausführungsplan und Statistiken zu Abfragen anzuzeigen, sie leichter verständlich zu machen und Fehlerbehebungen auszuführen. Query Profiler hilft Ihnen bei der Analyse der folgenden Arten von Abfragekomponenten:

  • Untergeordnete Abfragen – Eine untergeordnete Abfrage ist ein Teil der Arbeit einer Abfrage. Amazon Redshift kann eine Abfrage in mehrere untergeordnete Abfragen aufteilen, wenn dies effizienter ist, als sie als eine einzige große Abfrage zu verarbeiten. Im Profiler können Sie die Eigenschaften jeder untergeordneten Abfrage sehen. Eine untergeordnete Abfrage besteht aus Streams und zusätzlichen Unterkomponenten.

    Zu den Typen von untergeordneten Abfragen, die Query Profiler anzeigt, gehören in der Regel die folgenden:

    • Temporäre Tabellenabfrage: Der Text dieser untergeordneten Abfrage beginnt mit dem CREATE TEMP TABLE-Befehl. Diese untergeordnete Abfrage erstellt temporäre Tabellen, die von anderen untergeordneten Abfragen verarbeitet werden können.

    • Statistikabfrage: Der Query Profiler fügt am Anfang dieser untergeordneten Abfrage den folgenden Kommentar hinzu, um sie leichter identifizieren zu können:

      -- collect statistics of child query queryID

      Diese untergeordnete Abfrage erfasst Informationen, die die Abfrage-Engine von Amazon Redshift zur Leistungsoptimierung verwendet.

    Anmerkung

    Query Profiler zeigt die vom Benutzer bereitgestellte Abfrage als letzte untergeordnete Abfrage an, die Amazon Redshift ausführt.

  • Streams – Ein Stream ist eine Sammlung von Segmenten, die über verfügbare Computing-Knoten-Slices verteilt sind. Jede untergeordnete Abfrage besteht aus einem oder mehreren Segmenten. In Query Profiler können Sie die Eigenschaften jedes Streams sehen, z. B. die Ausführungszeit. Wenn Sie sich die Liste der Streams ansehen, können Sie wahrscheinlich schnell Leistungsengpässe finden.

  • Segmente – Ein Segment ist eine Kombination mehrerer Schritte, die ein einzelner Prozess ausführen kann. Ein Segment ist auch die kleinste Kompilierungseinheit, die von einem Compute-Knotensegment ausgeführt werden kann. Ein Slice ist die Parallelverarbeitungseinheit in Amazon Redshift. Die Segmente in einem Stream werden parallel ausgeführt. Query Profiler zeigt Segmente nicht grafisch an, aber Sie können auf die Segmentinformationen für einen Schritt im Detailbereich dieses Schritts zugreifen.

  • Schritte – Jedes Segment besteht aus einer Sammlung von Schritten. Ein Schritt ist ein Teil der Arbeit in einer Abfrage. Zu den Schritten können beispielsweise ein Hashjoin oder ein Scan gehören, bei dem Datensätze aus einer Tabelle gelesen werden.

Weitere Informationen zu Streams, Segmenten und Schritten finden Sie unter Workflow zur Planung und Ausführung von Abfragen im Datenbankentwicklerhandbuch zu Amazon Redshift.

Query Profiler zeigt Informationen an, die von den Ansichten SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN und SYS_CHILD_QUERY_TEXT zurückgegeben werden. Weitere Informationen zu diesen Ansichten finden Sie unter SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN, and SYS_CHILD_QUERY_TEXT im Datenbankentwicklerhandbuch zu Amazon Redshift.

Query Profiler zeigt nur Abfrageinformationen für Abfragen an, die kürzlich in der Datenbank ausgeführt wurden. Eine Abfrage, die mit vorab aufgefüllten Cachedaten abgeschlossen wird, anstatt sie in der Datenbank auszuführen, hat kein Abfrageprofil, wenn zuvor keine Informationen dafür verfügbar waren. Dies liegt daran, dass Amazon Redshift keinen Abfrageplan dafür generiert.

Voraussetzungen für die Verwendung von Query Profiler

Die SYS-Überwachungsansichten sind auf Benutzerfreundlichkeit und reduzierte Komplexität ausgelegt und bieten eine vollständige Palette von Metriken für eine effektive Überwachung und Fehlerbehebung. Die SYS-Überwachungsansichten garantieren außerdem den Abfrageverlauf der letzten sieben Tage, unabhängig von der Größe oder Aktivität des Clusters. Benutzer haben nur Zugriff auf Abfragen, die sie ausgeführt haben, während Superuser die Abfragen aller Benutzer einsehen können.

Ihr IAM-Benutzerkonto oder Ihre IAM-Rolle benötigt Berechtigungen für den Zugriff auf den Bereich Abfragen und Datenbanküberwachung der Konsole. In diesem Abschnitt wird beschrieben, wie Sie Benutzerkonten oder Rollen Berechtigungen erteilen.

Verwenden Sie die folgende Richtlinie, um Ihrem IAM-Benutzerkonto oder Ihrer Rille minimale Berechtigungen hinzuzufügen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "redshift-serverless:ListNamespaces", "redshift-serverless:ListWorkgroups", "redshift-data:ExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:111122223333:*", "arn:aws:redshift:us-east-1:111122223333:*" ] } ] }

Erteilen von Berechtigungen für die Überwachung von Abfragen für eine Rolle

Benutzer mit einer Rolle mit der Berechtigung sys:monitor können alle Abfragen anzeigen. Benutzer mit einer Rolle mit der Berechtigung sys:operator können Abfragen abbrechen, den Abfrageverlauf analysieren und Bereinigungsoperationen ausführen.

So erteilen Sie Berechtigung zur Abfrageüberwachung für eine Rolle
  1. Verwenden Sie den folgenden Befehl, um Systemüberwachungszugriff bereitzustellen, wobei role-name der Name der Rolle ist, für die Sie Zugriff gewähren möchten.

    grant role sys:monitor to "IAMR:role-name";
  2. (Optional) Verwenden Sie den folgenden Befehl, um Systemoperatorzugriff bereitzustellen, wobei role-name der Name der Rolle ist, für die Sie Zugriff gewähren möchten.

    grant role sys:operator to "IAMR:role-name";

Erteilen von Berechtigungen für die Überwachung von Abfragen für Benutzer

Benutzer mit der Berechtigung sys:monitor können alle Abfragen anzeigen. Darüber hinaus können Benutzer mit der Berechtigung sys:operator Abfragen abbrechen, den Abfrageverlauf analysieren und Bereinigungsoperationen ausführen.

So erteilen Sie einem Benutzer die Berechtigung zur Abfrageüberwachung
  1. Verwenden Sie den folgenden Befehl, um Systemüberwachungszugriff bereitzustellen, wobei user-name der Name des Benutzers ist, dem Sie Zugriff gewähren möchten.

    grant role sys:monitor to "IAMR:user-name";
  2. (Optional) Verwenden Sie den folgenden Befehl, um Systemoperatorzugriff bereitzustellen, wobei user-name der Name des Benutzers ist, dem Sie Zugriff gewähren möchten.

    grant role sys:operator to "IAMR:user-name";

Temporäre Anmeldeinformationen unter Verwendung Ihrer IAM-Identität

Diese Option ist nur dann verfügbar, wenn Sie eine Verbindung mit einem Cluster herstellen. Bei dieser Methode ordnet Query Editor Ihrer IAM-Identität einen Benutzernamen zu und generiert ein temporäres Passwort zum Herstellen einer Verbindung zu der Datenbank mit Ihrer IAM-Identität. Ein Benutzer, der diese Methode verwendet, um eine Verbindung herzustellen, muss über die IAM-Berechtigung redshift:GetClusterCredentialsWithIAM verfügen. Wenn Sie verhindern möchten, dass Benutzer diese Methode verwenden, ändern Sie ihren IAM-Benutzer oder ihre -Rolle, um diese Berechtigung zu verweigern.

Zugreifen auf den Query Profiler in der Amazon-Redshift-Konsole zum Analysieren einer Abfrage

Sie können auf Query Profiler entweder für Amazon Redshift Serverless oder für Amazon Redshift Provisioned zugreifen. Ausführliche Informationen finden Sie in den folgenden Abschnitten:

Zugriff auf Query Profiler in der Amazon-Redshift-Konsole für Amazon Redshift Serverless

Gehen Sie wie folgt vor, um auf Query Profiler für Amazon Redshift Serverless zuzugreifen:

  • Öffnen Sie die Konsole von Amazon Redshift Serverless.

  • Wählen Sie im Navigationsbereich unter Überwachung die Option Abfrage- und Datenbanküberwachung aus.

  • Wählen Sie eine Arbeitsgruppe aus.

  • Wählen Sie Abfragen und Datenbanküberwachung aus.

  • Wählen Sie eine Abfrage aus.

  • Wählen Sie auf der Seite mit den Abfragedetails die Registerkarte Abfrageplan.

Wenn ein Abfrageplan verfügbar ist, wird eine Liste der untergeordneten Abfragen angezeigt. Wählen Sie eine Abfrage aus, um sie in Query Profiler anzuzeigen.

Zugriff auf Query Profiler in der Amazon-Redshift-Konsole für Amazon Redshift Provisioned

Um auf Query Profiler für Amazon Redshift Provisioned zuzugreifen, gehen Sie wie folgt vor:

  • Gehen Sie in der Amazon-Redshift-Konsole zum Dashboard für bereitgestellte Cluster.

  • Einen Cluster auswählen

  • Wählen Sie Query Monitoring (Abfrageüberwachung) aus.

  • Verbindung zu einer Datenbank herstellen

  • Wählen Sie Abfragen und Datenbanküberwachung aus.

  • Wählen Sie eine Abfrage aus.

Wenn ein Abfrageplan verfügbar ist, wird eine Liste der untergeordneten Abfragen angezeigt. Wählen Sie eine Abfrage aus, um sie in Query Profiler anzuzeigen.

Query Profiler-Benutzeroberfläche

Query Profiler verwendet die folgenden Seiten, um Informationen zu Ihrer Abfrage anzuzeigen:

  • Seite „Abfragedetails“ – Auf dieser Seite werden Statistiken und untergeordnete Abfragen für Ihre Abfrage angezeigt.

  • Seite mit untergeordneter Abfrage – Auf dieser Seite werden Statistiken, Streams und eine visuelle Darstellung des Ausführungsplans für eine untergeordnete Abfrage angezeigt. Die Konsole zeigt diese Seite an, wenn Sie auf der Seite Abfrage - und Datenbanküberwachung eine untergeordnete Abfrage aus der Liste der untergeordneten Abfragen auswählen.

Seite „Abfragedetails“

Query details interface showing execution time, data returned, and performance breakdown for query 4960.

Die Seite „Abfragedetails“ enthält die folgenden Komponenten:

  • Oberer Bereich – Im Bereich oben auf der Seite werden Details zur Abfrage angezeigt, z. B. Status und Typ. Informationen zur Quelle der Informationen, die im oberen Bereich angezeigt werden, finden Sie unter SYS_QUERY_HISTORY im Datenbankentwicklerhandbuch zu Amazon Redshift.

  • SQL-Registerkarte – Diese Registerkarte im unteren Bereich zeigt den SQL-Text für die ursprüngliche Benutzerabfrage an.

  • Abfrageplan-Registerkarte – Diese Registerkarte im unteren Bereich zeigt eine Liste der untergeordneten Abfragen an, die Amazon Redshift für die Erstellung von Daten und Statistiken für die Benutzerabfrage verwendet. In der Liste Untergeordnete Abfragen werden standardmäßig Informationen und aggregierte Statistiken zu jeder untergeordneten Abfrage angezeigt. Informationen zur Quelle der Informationen, die auf dieser Seite angezeigt werden, finden Sie unter SYS_QUERY_DETAIL im Datenbankentwicklerhandbuch zu Amazon Redshift.

    Über das Menü „Präferenzen“ können Sie Spalten zur Liste der untergeordneten Abfragen hinzufügen oder daraus entfernen.

  • Verwandte Metriken – Auf dieser Registerkarte im unteren Bereich werden die folgenden CloudWatch-Metriken für die Abfrage angezeigt:

    • Verwendete RPU-Kapazität (für Serverless-Arbeitsgruppen): Die von der Abfrage verwendete Rechenkapazität, gemessen in Redshift Processing Units (RPUs). Weitere Informationen finden Sie unter Rechenkapazität für Amazon Redshift Serverless.

    • Cluster-Integritätsstatus, CPU-Auslastung, Verwendete Speicherkapazität (für bereitgestellte Cluster): Der Status und die Systemressourcen, die von der Abfrage verwendet wurden.

    • Aktive Datenbankverbindungen: Die DatabaseConnections-Metrik für die Abfrage.

    Weitere Informationen zu CloudWatch-Metriken finden Sie unter Leistungsdaten in Amazon Redshift.

Seite mit untergeordneter Abfrage

Query execution plan showing stages from Distribute to Aggregate with execution times.

Die Seite „Untergeordnete Abfrage“ enthält die folgenden Komponenten:

  • Pulldown-Menü für untergeordnete Abfragen – Dieses Steuerelement zeigt den Sequenznamen und die Ausführungszeit für jede untergeordnete Abfrage an. Sie können zu anderen untergeordneten Abfragen navigieren, indem Sie sie in diesem Steuerelement auswählen.

  • Seitenbereich – Dieser Bereich enthält Registerkarten zur Anzeige der untergeordneten Abfragestreams und des Textes der untergeordneten Abfrage.

  • Registerkarte „Untergeordnete Abfrage-Streams“ – Auf dieser Registerkarte im oberen Bereich wird Folgendes angezeigt:

    • Streams – In diesem Bereich wird die Liste der Streams in der untergeordneten Abfrage angezeigt. In diesem Bereich werden Informationen und aggregierte Daten zu den Streams angezeigt, die Amazon Redshift zur Optimierung der Abfrage verwendet. Informationen zu den Details in diesem Bereich finden Sie unter SYS_QUERY_DETAIL im Datenbankentwicklerhandbuch zu Amazon Redshift.

      Sie können dem Bereich Streams mithilfe des Menüs „Präferenzen“ Spalten hinzufügen oder daraus entfernen. Sie greifen über das Zahnradsymbol im Bereich Streams auf das Menü „Präferenzen“ zu.

    • Bereich für untergeordnete Abfragen – Eine grafische Darstellung der Schritte in der untergeordneten Abfrage. Informationen zum Bereich Untergeordnete Abfrage finden Sie unter Bereich „Untergeordnete Abfrage“.

  • Registerkarte „Text der untergeordneten Abfrage“ – Auf dieser Registerkarte im oberen Bereich wird der SQL-Code für die untergeordnete Abfrage angezeigt.

  • Detailbereich für die untergeordnete Abfrage – In diesem Bereich im rechten Bereich werden Details zu der untergeordneten Abfrage angezeigt. Informationen zu den Details in diesem Bereich finden Sie unter SYS_QUERY_DETAIL im Datenbankentwicklerhandbuch zu Amazon Redshift.

  • Bereich mit Stream-Details – Wenn Sie im Bereich Streams einen Stream auswählen, werden im Bereich Stream-Details Informationen über den Stream angezeigt. Informationen zu den Details in diesem Bereich finden Sie unter SYS_QUERY_DETAIL im Datenbankentwicklerhandbuch zu Amazon Redshift.

  • Bereich mit Schrittdetails – Wenn Sie einen Schritt entweder im Bereich Streams oder im Diagramm im Untergeordneten Abfrageplan auswählen, werden im Bereich mit den Schrittdetails Informationen zu dem Schritt angezeigt. Informationen zu den Details in diesem Bereich finden Sie unter SYS_QUERY_DETAIL im Datenbankentwicklerhandbuch zu Amazon Redshift.

Bereich „Untergeordnete Abfrage“

Query Profiler zeigt die untergeordnete Abfrage im Bereich Untergeordnete Abfrage als grafische Darstellung der Schritte in der ausgewählten untergeordneten Abfrage an.

Im Bereich Untergeordnete Abfrage werden die Ausführungsreihenfolge und die Beziehungen zwischen den Schritten angezeigt. Wenn ein Schritt beispielsweise die Ausgabe von zwei anderen Schritten verbindet, wird der Schritt im Bereich Untergeordnete Abfrage als Baumknoten angezeigt, in den zwei Knoten münden:

Tree diagram showing Hashjoin step with Scan + Item and Hash steps as child nodes.

Im Bereich Untergeordnete Abfrage werden standardmäßig nicht die Streams angezeigt, die die Schritte enthalten. Um die Streams anzuzeigen, die Amazon Redshift verwendet, um die Schritte in der untergeordneten Abfrage logisch zu partitionieren, wählen Sie Streams anzeigen. Wenn Sie Streams anzeigen wählen, werden im Bereich Untergeordnete Abfrage die Schritte angezeigt, die in den Streams der Abfrage enthalten sind.

Im Bereich Untergeordnete Abfrage werden keine Segmentinformationen angezeigt. Um das Segment für einen Schritt anzuzeigen, wählen Sie den Schritt aus. Im Bereich Schrittdetails wird dann das Segment für den Schritt angezeigt.

Navigation im Bereich „Untergeordnete Abfrage“

Im Bereich Untergeordnete Abfrage können Sie Schritte auswählen, um detaillierte Informationen zu den einzelnen Schritten anzuzeigen. Sie können den Arbeitsbereich auch schwenken und zoomen, um die Schritte in Ihrem Abfrageplan besser zu visualisieren.

Mit den folgenden Methoden können Sie im Untergeordneten Abfrageplan Knoten auswählen, schwenken und zoomen:

  • Mit der Maus – Sie können Knoten auswählen, auf den Arbeitsbereich klicken und ihn ziehen, um ihn zu schwenken, und zum Zoomen die Maustaste gedrückt halten Ctrl (Windows) oder CMD (Mac) und das Mausrad gedrückt halten. Wenn Sie einen Knoten auswählen, wird der Arbeitsbereich vergrößert und geschwenkt, um diesen Knoten hervorzuheben. Wenn Sie im Workspace einen Stream auswählen, wird dieser Stream in der Liste der Streams hervorgehoben. Wenn Sie im Workspace einen Schritt auswählen, werden im Bereich mit den Schrittdetails Informationen zu diesem Schritt angezeigt.

  • Mithilfe der Steuerelemente zum Zoomen und Anpassen oben links im Arbeitsbereich – Mit diesen Steuerelementen können Sie die Ansicht vergrößern, verkleinern, auf den gesamten Arbeitsbereich zoomen und in den Vollbildmodus wechseln. Wenn Sie auf den gesamten Abfrageplan zoomen, zentriert der Workspace den Abfrageplan sowohl horizontal als auch vertikal.

  • Verwenden der Minimap unten rechts im Workspace – Sie können den Workspace schwenken oder zoomen, indem Sie das Minimap-Steuerelement in der unteren linken Ecke des Workspace verwenden.

  • Auswahl eines Streams im Streams-Bereich – Wenn Sie im Streams-Bereich einen Stream auswählen, schwenkt und zoomt der Workspace, um den ausgewählten Stream anzuzeigen, und zeigt Informationen über den Stream im Bereich Stream-Details an.

  • Auswahl eines Schritts im Bereich Stream-Details – Wenn Sie einen Schritt im Bereich Stream-Details auswählen, schwenkt und zoomt der Workspace, um den ausgewählten Schritt anzuzeigen, und zeigt Informationen zu dem Schritt im Bereich mit den Schrittdetails an.

Anmerkung

Wenn Sie einen Schritt auswählen, entweder im Workspace oder in einem anderen Bereich, versucht der Workspace, so zu zoomen und zu schwenken, dass der ausgewählte Schritt am besten sichtbar ist.

Wenn Sie einen Stream oder Schritt aus dem Workspace oder einem anderen Bereich auswählen, zoomt und schwenkt der Workspace nur dann auf diesen Stream oder Schritt, wenn Sie im Steuerelement oben rechts im Arbeitsbereich die Option Schwenken und Zoomen ausgewählt haben. Sie können dieses Verhalten auf Schwenken und Zoomen, nur Schwenken oder keine Bewegung beschränken, indem Sie die entsprechende Einstellung im Pulldown-Menü auswählen.

Dropdown menu showing pan and zoom options for workspace navigation control.

Problembehandlung bei Abfragen mit Query Profiler

Bei der Problembehandlung zu einer Abfrage können Sie eine untergeordnete Abfrage auswählen, um zu ermitteln, welcher Stream den höchsten Prozentsatz der gesamten Abfragezeit verwendet. So können Sie schnell ermitteln, welcher Teil Ihrer Abfrage weiter analysiert werden sollte.

Wenn Sie wissen, welche untergeordnete Abfrage die meiste Zeit in Anspruch nimmt, sehen Sie sich die zugehörigen Schritte an, um zu sehen, welche Verknüpfung oder welcher Scan die Leistung beeinträchtigen könnte.