Workflow zur Analyse von Abfragen - 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.

Workflow zur Analyse von Abfragen

Wenn die Ausführung einer Abfrage mehr Zeit als erwartet in Anspruch nimmt, verwenden Sie die folgenden Schritte, um Probleme zu identifizieren und zu korrigieren, die die Abfrageleistung potentiell mindern könnten. Wenn Sie nicht genau wissen, welche Abfragen in Ihrem System von der Leistungsoptimierung profitieren könnten, führen Sie zunächst die Diagnoseabfrage in aus Identifizieren der Top-Kandidaten zur Optimierung unter den Abfragen.

  1. Stellen Sie sicher, dass Ihre Tabellen entsprechend bewährten Methoden entworfen sind. Weitere Informationen finden Sie unter Bewährte Methoden für die Gestaltung von Tabellen mit Amazon Redshift.

  2. Überprüfen Sie, ob Sie nicht benötigte Daten in Ihren Tabellen löschen bzw. archivieren können. Beispiel: Nehmen Sie an, dass Ihre Abfragen stets nur Daten aus den letzten 6 Monaten verwenden, aber Ihre Tabellen enthalten die letzten 18 Monate. In diesem Fall können Sie die alten Daten löschen oder archivieren, um die Anzahl der zu scannenden und zu verteilenden Datensätze zu reduzieren.

  3. Führen Sie den Befehl VACUUM über den Tabelle in der Abfrage aus, um Speicherbereiche wieder freizugeben und Zeilen neu zu sortieren. Die Ausführung von VACUUM kann dazu beitragen, die Leistung zu verbessern, wenn ein großer Bereich unsortiert ist, und der Sortierschlüssel in der Abfrage in einer Join-Operation oder im Prädikat verwendet wird.

  4. Führen Sie den Befehl ANALYZE für die Tabellen in der Abfrage aus, um sicherzustellen, dass die Datenbankstatistik aktuell ist. Die Ausführung von ANALYZE wird empfohlen, wenn sich die Größe der in der Abfrage verwendeten Tabellen in größerem Umfang geändert hat. Gelegentlich kann die Ausführung eines umfassenden ANALYSE-Befehls zu viel Zeit in Anspruch nehmen. In diesem Fall kann jedoch bereits die Ausführung von ANALYZE über einer bestimmten Spalte die Verarbeitungszeit beträchtlich verbessern. Auch bei eines solchen eingeschränkten ANALYZE-Ausführung wird die Statistik zu Tabellengrößen aktualisiert. Die Tabellengröße ist ein signifikanter Faktor bei der Abfrageplanung.

  5. Stellen Sie sicher, dass Ihre Abfrage für jeden Clienttyp (also für alle clientseitig verwendeten Verbindungsprotokolle) einmal ausgeführt wurde, damit die Abfrage kompiliert und zwischengespeichert wird. Dieser Ansatz beschleunigt die nachfolgenden Ausführungen der Abfrage. Weitere Informationen finden Sie unter Für die Abfrageleistung relevante Faktoren.

  6. Überprüfen Sie die Tabelle STL_ALERT_EVENT_LOG, um mögliche Probleme bei Ihrer Abfrage zu identifizieren und zu korrigieren. Weitere Informationen finden Sie unter Überprüfen von Abfragewarnungen.

  7. Um den Abfrageplan abzurufen und mit seiner Hilfe die Abfrage zu optimieren, führen Sie den Befehl EXPLAIN aus. Weitere Informationen finden Sie unter Analysieren des Abfrageplans.

  8. Um die Abfragezusammenfassung abzurufen und mit ihrer Hilfe die Abfrage zu optimieren, führen Sie die Befehle SVL_QUERY_SUMMARY bzw. SVL_QUERY_REPORT aus. Weitere Informationen finden Sie unter Analysieren des Abfragezusammenfassung.

Manchmal muss eine Abfrage, die schnell ausgeführt werden sollte, warten, bis eine andere Abfrage mit längerer Ausführungszeit abgeschlossen ist. In diesem Fall braucht möglicherweise an der Abfrage selbst nichts verbessert werden, aber Sie können die Systemleistung insgesamt verbessern, indem Sie für verschiedene Arten von Abfragen Warteschlangen erstellen und verwenden. Beispiele zu Wartezeiten für verschiedene Abfragen in Warteschlangen finden Sie unter Überprüfen der Wartezeiten von Abfragen in Warteschlangen. Weitere Informationen zum Konfigurieren von Abfragewarteschlangen finden Sie unter Implementierung von Workload Management.