SQL mit SQL Tuning Advisor analysieren

Mit SQL Tuning Advisor können Sie SQL-Anweisungen analysieren und optimieren.

SQL Tuning ist ein wichtiger Aspekt der Performanceoptimierung für das Datenbanksystem. SQL Tuning Advisor ist ein Mechanismus für das Lösen von Problemen im Zusammenhang mit suboptimal ausgeführten SQL-Anweisungen. Er verwendet eine oder mehrere SQL-Anweisungen oder ein SQL Tuning Set (STS) als Eingabe und ruft den Automatic Tuning Optimizer auf, um die Anweisungen zu analysieren. Die Ausgabe besteht aus Ergebnissen und Empfehlungen sowie einer Begründung für jede Empfehlung und dem erwarteten Nutzen. Die Optimierungsempfehlungen enthalten die folgenden Elemente. Sie können die Empfehlungen akzeptieren, um die Optimierung der SQL-Anweisungen abzuschließen.

  • Erfassen von Objektstatistiken
  • Erstellen von Indizes
  • Umschreiben von SQL-Anweisungen
  • Erstellen von SQL-Profilen
  • Erstellen von SQL-Plan-Baselines

Weitere Informationen über:

In Database Management Diagnostics & Management können Sie SQL Tuning Advisor verwenden, um die SQL-Anweisungen in einer verwalteten Datenbank zu analysieren.

Hinweis

SQL Tuning Advisor ist nur für Oracle Database Enterprise Edition Version 12.2 und höher verfügbar. Wenn der Initialisierungsparameter COMPATIBLE für die Datenbank festgelegt ist, müssen Sie sicherstellen, dass es sich bei dieser um Version 12.2.0 oder höher handelt. Informationen zur Datenbankkompatibilität finden Sie unter Was ist Oracle Database-Kompatibilität? im Oracle Database Upgrade Guide.

Im Folgenden werden die wichtigsten Schritte für die Verwendung von SQL Tuning Advisor in Diagnostics & Management beschrieben:

  1. Wählen Sie die Eingabe aus, und führen Sie SQL Tuning Advisor aus: Die Eingabe (SQL-Anweisungen oder ein STS) für SQL Tuning Advisor kann mit einer der folgenden Optionen ausgewählt und als SQL-Tuning-Aufgabe weitergeleitet werden:
    • Gehen Sie zu Performancehub, wählen Sie auf der Registerkarte ASH-Analyse mindestens eine SQL-ID aus, und klicken Sie auf SQL optimieren.

    • Klicken Sie im Abschnitt SQL Tuning Advisor-Aufgaben auf SQL optimieren, und wählen Sie SQL-Anweisungen oder ein STS aus. Um einzelne SQL-Anweisungen als Eingabe auswählen zu können, müssen die SQL-Anweisungen zuerst auf der Registerkarte ASH-Analyse in Performancehub ausgewählt werden.

    • Aktivieren Sie automatisches SQL Tuning für die Datenbank. Beachten Sie, dass Diagnostics & Management die automatische Konfiguration von SQL Tuning Advisor nicht unterstützt. Falls SQL Tuning Advisor jedoch so konfiguriert ist, dass es automatisch in der Datenbank ausgeführt wird, werden die automatische SQL-Tuning-Aufgab sowie die Ergebnisse und Empfehlungen ebenfalls in Diagnostics & Management angezeigt. Informationen zur Konfiguration von SQL Tuning Advisor als automatisierte Aufgabe finden Sie unter Automatische SQL-Tuning-Aufgabe verwalten in der SQL-Tuning-Dokumentation für Oracle Database.

  2. Zeigen Sie die Ergebnisse an: Die Ergebnisse von SQL Tuning Advisor werden im Abschnitt SQL Tuning Advisor-Aufgaben auf der Seite Verwaltete Datenbankdetails angezeigt.
  3. Implementieren Sie die Empfehlungen: Die Ergebnisse und Empfehlungen von SQL Tuning Advisor sind auf der Seite SQL Tuning Advisor-Aufgabendetails verfügbar. Sie können diese Informationen prüfen und sich entscheiden, die Empfehlungen zu implementieren.

Für die Verwendung von SQL Tuning Advisor erforderliche Rolle und Berechtigungen

Sie benötigen Oracle Database-Administratorberechtigungen, um die Aufgaben im SQL Tuning Advisor-Workflow auszuführen. Darüber hinaus müssen die folgende Rolle und die folgenden Berechtigungen zugewiesen werden:

GRANT SELECT_CATALOG_ROLE <following privileges> TO <admin user>
  • ADVISOR
  • CREATE JOB
  • CREATE SESSION
  • SELECT ANY DICTIONARY
  • INHERIT ANY PRIVILEGES
  • ADMINISTER SQL TUNING SET TO <SQLTUNEUSER>

Weitere Informationen zu Oracle Database-Rollen und -Berechtigungen finden Sie unter Berechtigungs- und Rollenautorisierung konfigurieren in der Sicherheitsdokumentation für Oracle Database.

SQL Tuning Advisor ausführen

Als ersten Schritt müssen Sie SQL Tuning Advisor für die ausgewählten SQL-Anweisungen oder ein STS ausführen.

Mit einer der folgenden Optionen können Sie den Bereich SQL Tuning Advisor ausführen auf der Seite Details der verwalteten Datenbank aufrufen:

  • Klicken Sie auf Performancehub, scrollen Sie auf der Registerkarte ASH-Analysen nach unten zu den SQL-IDs, die im Abschnitt SQL-ID nach Wait-Klasse (Standardansicht) aufgeführt sind, wählen Sie mindestens eine SQL-Anweisung aus, und klicken Sie auf SQL optimieren.

    Hinweis

    Performancehub für verwaltete Datenbanken unterstützt nur die Oracle Database Enterprise Edition. Die Verfügbarkeit von Performancehubfeatures hängt von dem Typ und der Version der Oracle-Datenbank ab und erfordert bestimmte zusätzliche Berechtigungen. Informationen zu allen Bedingungen, die sich auf die Verwendung von Performancehub für verwaltete Datenbanken auswirken, finden Sie unter OCI: Voraussetzungsbedingungen für Performancehub (KB59684) in My Oracle Support.
  • Klicken Sie im linken Fensterbereich unter Ressourcen auf SQL Tuning Advisor, und klicken Sie im Abschnitt SQL Tuning Advisor-Aufgaben auf SQL optimieren.

Im Bereich SQL Tuning Advisor ausführen:

  1. Geben Sie im Abschnitt Aufgabendefinition die folgenden Details an:
    1. Name: Geben Sie einen Namen für die SQL-Tuning-Aufgabe ein.
    2. Beschreibung: Geben Sie optional eine Beschreibung für die Aufgabe ein.
  2. Wählen Sie eine der folgenden Optionen im Abschnitt SQL aus:
    • Auswahl von SQL-Anweisungen: Verwenden Sie diese Option, um die in Performance Hub ausgewählten SQL-Anweisungen auszuwählen und zu analysieren. Beachten Sie, dass diese Option nur aktiviert ist, wenn SQL-Anweisungen zuerst auf der Registerkarte ASH-Analyse in Performancehub ausgewählt werden.
    • SQL Tuning Set: Mit dieser Option können Sie ein STS als Eingabe für SQL Tuning Advisor auswählen. Beachten Sie, dass STS in diesem Abschnitt nur aufgeführt werden, wenn Sie zuvor in der Datenbank erstellt wurden. Weitere Informationen zu STS finden Sie unter Workloads in SQL Tuning Sets erfassen in der SQL-Tuning-Dokumentation für Oracle Database.
  3. Geben Sie den Umfang der Aufgabe im Abschnitt Aufgabenparameter an:
    1. Zeitlimit gesamt (Minuten): Geben Sie die Zeit an, die SQL Tuning Advisor für die Analyse der Anweisung benötigt.
    2. Gültigkeitsbereich der Analyse: Wählen Sie die entsprechende Option aus, um den Geltungsbereich der Analyse zu definieren.
      • Begrenzt: SQL Tuning Advisor erstellt Empfehlungen basierend auf statistischen Prüfungen, Zugriffspfadanalysen und SQL-Strukturanalysen. SQL-Profilempfehlungen werden nicht generiert.
      • Umfassend: SQL Tuning Advisor führt alle Analysen aus, die er unter dem Geltungsbereich Begrenzt ausführt, plus SQL-Profiling.
  4. Wählen Sie eine der verfügbaren Optionen in der Dropdown-Liste Zugangsdatentyp im Abschnitt Zugangsdaten aus, um Datenbankzugangsdaten für die Verbindung zur verwalteten Datenbank anzugeben. Informationen zu Zugangsdatentypen finden Sie unter Diagnose- und Verwaltungsaufgaben mit Zugangsdaten ausführen.
  5. Klicken Sie auf Ausführen.
Die SQL-Tuning-Aufgabe wird an SQL Tuning Advisor weitergeleitet.

SQL Tuning Advisor-Ergebnisse anzeigen

Beim Ausführen von SQL Tuning Advisor können Sie die Ergebnisse und Empfehlungen in Diagnostics & Management anzeigen.

Nachdem Sie SQL Tuning Advisor für ausgewählte SQL-Anweisungen oder ein STS ausgeführt haben, wird die SQL-Tuning-Aufgabe im Abschnitt SQL Tuning Advisor-Aufgaben angezeigt. Wenn SQL Tuning Advisor für die automatische Ausführung in der Datenbank konfiguriert ist, werden auch die automatischen SQL-Tuning-Aufgaben angezeigt. Für jede der SQL-Tuning-Aufgaben können Sie auf das Symbol Aktionen (Aktionen) klicken und gegebenenfalls auf die Option SQL-Tuning-Aufgabe erneut ausführen klicken, um die SQL-Tuning-Aufgabe erneut auszuführen.

Klicken Sie auf den Namen der SQL-Optimierungsaufgabe, um zur Seite SQL Tuning Advisor-Aufgabendetails zu gehen. Die Ergebnisse und Empfehlungen von SQL Tuning Advisor werden auf den folgenden Registerkarten auf der Seite SQL Tuning Advisor-Aufgabendetails angezeigt:

  • Registerkarte Übersicht: Zeigt eine grafische Übersicht der Aufgabe und der von SQL Tuning Advisor bereitgestellten Ergebnisse an:
    • Geprüfte eindeutige SQL-Anweisungen: Die von SQL Tuning Advisor geprüften SQL-Anweisungen werden in die Kategorien SQL mit Ergebnissen geprüft, SQL aufgrund von Fehlern übersprungen und SQL ohne Ergebnisse geprüft gruppiert und in einem Ringdiagramm angezeigt. Wenn die SQL-Anweisung mehrmals ausgeführt wurde, wird nur eine (eindeutige) Ausführung während des Analysezeitraums berücksichtigt.
    • Vorteil für SQL-Profilempfehlungen: Die Vorteile der SQL-Profilempfehlungen in DB-Zeit (in Sekunden) werden in Balkendiagrammen angezeigt. Die Balkendiagramme enthalten Vor- und Nach-Balken, die jeweils die tatsächliche DB-Zeit und die verbesserte DB-Zeit angeben. Wenn die SQL-Profilempfehlungen bereitgestellt, jedoch nicht implementiert werden, wird ein einzelnes Diagramm mit potenziellen Vorteilen angezeigt. Wenn die SQL-Profilempfehlungen teilweise implementiert sind, werden die Diagramme mit potenziellen und implementierten Vorteilen angezeigt. Wenn die SQL-Profilempfehlungen vollständig implementiert sind, wird nur das Diagramm mit implementierten Vorteilen angezeigt.
    • Ergebnisse mit Empfehlungen nach Typ: Die SQL Tuning Advisor-Ergebnisse mit Empfehlungen werden nach Typ kategorisiert und in einem Balkendiagramm angezeigt.
  • Registerkarte SQL-Ergebnisse: Zeigen Sie die Ergebnisse an, und implementieren Sie die Empfehlungen von SQL Tuning Advisor. Sie können die Liste der SQL-Anweisungen und die entsprechenden Informationen basierend auf der von SQL Tuning Advisor ausgeführten Analyse anzeigen. Dazu gehören der geschätzte Performancevorteil und Ergebnisse mit Empfehlungen. Sie können eine einzelne SQL-Anweisung auswählen, um die spezifischen Empfehlungen für jedes Ergebnis, die Begründung und den erwarteten Vorteil anzuzeigen, wenn eine Empfehlung implementiert wird. Auf dieser Registerkarte können Sie mit den verfügbaren Optionen alle SQL-Profilempfehlungen implementieren, eine einzelne Empfehlung implementieren und Explain-Pläne vergleichen.
  • Registerkarte SQL ohne Ergebnisse: Zeigen Sie die SQL-Anweisungen an, die aufgrund von keinen Ergebnissen oder Empfehlungen, aufgrund von Fehlern oder wegen eines Timeouts der Aufgabe übersprungen wurden.

SQL Tuning Advisor-Empfehlungen implementieren

Sie können Jobs erstellen, um SQL Tuning Advisor-Empfehlungen zu implementieren.

Gehen Sie dazu zur Seite SQL Tuning Advisor-Aufgabendetails, und zeigen Sie die Ergebnisse und Empfehlungen der SQL Tuning Advisor-Analyse auf der Registerkarte SQL-Ergebnisse an. Auf dieser Registerkarte können Sie einen Job erstellen, um alle SQL-Profilempfehlungen zu implementieren oder ein einzelnes SQL-Profil, einen Index oder eine statistikbezogene Empfehlung zu implementieren und Explain-Pläne zu vergleichen. Sie können auch Restrukturierungs-SQL-, Alternativplan- und sonstige Ergebnisse anzeigen. Die Option zur Implementierung von Restrukturierungs-SQL- und Alternativplanempfehlungen ist jedoch nicht verfügbar. Informationen zur Restrukturierungs-SQL und alternativen Plänen finden Sie unter SQL-Strukturanalyse und Alternativplananalyse in der SQL-Tuning-Dokumentation für Oracle Database.


Registerkarte "SQL-Ergebnisse"

Alle SQL-Profilempfehlungen implementieren

  1. Gehen Sie zur Seite SQL Tuning Advisor-Aufgabendetails, und klicken Sie auf die Registerkarte SQL-Ergebnisse.
  2. Klicken Sie auf Alle SQL-Profilempfehlungen implementieren.
  3. Führen Sie im Bereich Alle Empfehlungen implementieren folgende Schritte aus:
    1. Geben Sie die folgenden Informationen an, um einen Job zum Implementieren der Empfehlungen zu erstellen:
      1. Name: Geben Sie einen eindeutigen Namen für den Job ein.
      2. Beschreibung: Geben Sie optional eine Beschreibung für den Job ein.
    2. Geben Sie die Aufgabenparameter an:
      1. Das neue Profil mit erzwungener Übereinstimmung implementieren: Wählen Sie diese Option aus, um alle SQL-Anweisungen als Ziel festzulegen, die nach der Normalisierung aller Literalwerte in Bind-Variablen denselben Text enthalten. Wenn in der SQL-Anweisung eine Kombination aus Literalwerten und Bind-Werten verwendet wird, erfolgt keine Bind-Transformation.
      2. SQL-Profilkategorie festlegen: Wählen Sie diese Option aus, um die Kategorie anzugeben, in der das SQL-Profil erstellt werden soll, und geben Sie den Namen der Kategorie im Feld Profil in Kategorie erstellen ein.
    3. Jobparameter angeben:
      1. Zugangsdatentyp: Wählen Sie eine der verfügbaren Optionen aus, um Datenbankzugangsdaten für die Verbindung zur verwalteten Datenbank anzugeben. Informationen zu Zugangsdatentypen finden Sie unter Diagnose- und Verwaltungsaufgaben mit Zugangsdaten ausführen.
      2. Bucket für Jobausgabe: Wählen Sie den Oracle Object Storage-Bucket aus, in dem die Jobausgabe gespeichert wird. Der Oracle Object Storage-Bucket kann sich in demselben Compartment wie der Job oder in einem anderen Compartment befinden. Sie müssen über die erforderlichen Oracle Cloud Infrastructure Object Storage-Serviceberechtigungen zur Auswahl des Buckets verfügen. Weitere Informationen finden Sie unter Erforderliche zusätzliche Berechtigungen zum Verwenden von Diagnose und Management.
    4. Klicken Sie optional auf SQL anzeigen, um die auszuführende SQL-Anweisung anzuzeigen.
    5. Klicken Sie auf Empfehlungen implementieren.
Alle SQL-Profilempfehlungen werden jetzt implementiert, und Sie können diesen Job im Abschnitt Jobs der verwalteten Datenbank überwachen.

Um eine einzelne SQL-Profilempfehlung zu implementieren, wählen Sie eine einzelne SQL-Anweisung aus, scrollen Sie nach unten zum Abschnitt Eine Empfehlung für SQL-ID implementieren: <SQL-ID>, und klicken Sie auf das Symbol Aktionen (Aktionen) in der Zeile SQL-Profil, und klicken Sie auf Empfehlung implementieren.

Informationen zu SQL-Profilen finden Sie unter Informationen zu SQL-Profilen in der SQL-Tuning-Dokumentation für Oracle Database.

Indexempfehlung implementieren

  1. Wählen Sie auf der Registerkarte SQL-Ergebnisse eine einzelne SQL-Anweisung aus, scrollen Sie nach unten zum Abschnitt Eine Empfehlung für SQL-ID implementieren: <SQL-ID>, und klicken Sie in der Zeile Index auf das Symbol Aktionen (Aktionen), und klicken Sie auf Empfehlung implementieren.
  2. Führen Sie im Bereich Empfehlung implementieren folgende Schritte aus:
    1. Geben Sie die folgenden Informationen an, um einen Job zum Implementieren der Empfehlungen zu erstellen:
      1. Name: Geben Sie einen eindeutigen Namen für den Job ein.
      2. Beschreibung: Geben Sie optional eine Beschreibung für den Job ein.
    2. Wählen Sie im Abschnitt Aufgabenparameter den Tablespace aus, mit dem die Indexempfehlung implementiert wird.
    3. Jobparameter angeben:
      1. Zugangsdatentyp: Wählen Sie eine der verfügbaren Optionen aus, um Datenbankzugangsdaten für die Verbindung zur verwalteten Datenbank anzugeben. Informationen zu Zugangsdatentypen finden Sie unter Diagnose- und Verwaltungsaufgaben mit Zugangsdaten ausführen.
      2. Bucket für Jobausgabe: Wählen Sie den Oracle Object Storage-Bucket aus, in dem die Jobausgabe gespeichert wird. Der Oracle Object Storage-Bucket kann sich in demselben Compartment wie der Job oder in einem anderen Compartment befinden. Sie müssen über die erforderlichen Oracle Cloud Infrastructure Object Storage-Serviceberechtigungen zur Auswahl des Buckets verfügen. Weitere Informationen finden Sie unter Erforderliche zusätzliche Berechtigungen zum Verwenden von Diagnose und Management.
    4. Klicken Sie optional auf SQL anzeigen, um die auszuführende SQL-Anweisung anzuzeigen.
    5. Klicken Sie auf Empfehlung implementieren.
Die Indexempfehlung wird jetzt implementiert, und Sie können diesen Job im Abschnitt Jobs der verwalteten Datenbank überwachen.

Statistikempfehlung implementieren

  1. On the SQL findings tab, select a single SQL statement, scroll down to the Implement one recommendation for SQL ID: <SQL ID> section and click the Actions icon (Aktionen) in the Statistics row and click Implement recommendation.
  2. Führen Sie im Bereich Empfehlung implementieren folgende Schritte aus:
    1. Geben Sie die folgenden Informationen an, um einen Job zum Implementieren der Empfehlungen zu erstellen:
      1. Name: Geben Sie einen eindeutigen Namen für den Job ein.
      2. Beschreibung: Geben Sie optional eine Beschreibung für den Job ein.
    2. Prüfen Sie im Abschnitt Aufgabenparameter die Statistiken, die für die Implementierung berücksichtigt werden.
    3. Jobparameter angeben:
      1. Zugangsdatentyp: Wählen Sie eine der verfügbaren Optionen aus, um Datenbankzugangsdaten für die Verbindung zur verwalteten Datenbank anzugeben. Informationen zu Zugangsdatentypen finden Sie unter Diagnose- und Verwaltungsaufgaben mit Zugangsdaten ausführen.
      2. Bucket für Jobausgabe: Wählen Sie den Oracle Object Storage-Bucket aus, in dem die Jobausgabe gespeichert wird. Der Oracle Object Storage-Bucket kann sich in demselben Compartment wie der Job oder in einem anderen Compartment befinden. Sie müssen über die erforderlichen Oracle Cloud Infrastructure Object Storage-Serviceberechtigungen zur Auswahl des Buckets verfügen. Weitere Informationen finden Sie unter Erforderliche zusätzliche Berechtigungen zum Verwenden von Diagnose und Management.
    4. Klicken Sie optional auf SQL anzeigen, um die auszuführende SQL-Anweisung anzuzeigen.
    5. Klicken Sie auf Empfehlung implementieren.
Die Statistikempfehlung wird jetzt implementiert, und Sie können diesen Job im Abschnitt Jobs der verwalteten Datenbank überwachen.

Erklärungspläne vergleichen

Der Explain-Plan ist eine Anweisung, die Ausführungspläne anzeigt, die von Oracle Optimizer für die Anweisungen SELECT, UPDATE, INSERT und DELETE ausgewählt wurden. Ein Ausführungsplan einer Anweisung ist die Folge von Vorgängen, die Oracle zur Ausführung der Anweisung durchführt.

So zeigen Sie Explain-Pläne an und vergleichen sie:

  1. Wählen Sie auf der Registerkarte SQL-Ergebnisse eine einzelne SQL-Anweisung aus, scrollen Sie nach unten zum Abschnitt Eine Empfehlung für SQL-ID implementieren: <SQL ID>, und klicken Sie in der Zeile Index oder SQL-Profil auf das Symbol Aktionen (Aktionen), und klicken Sie auf Explain-Pläne vergleichen.
  2. Gehen Sie auf der Seite Erklärungspläne vergleichen folgendermaßen vor:
    • Vergleichen Sie die DB-Zeit und die I/O-Anzahl im ursprünglichen und im neuen Explain-Plan auf der Registerkarte Profiltestergebnisse. Dieser Vergleich wird in einer grafischen Ansicht bereitgestellt und vergleicht Metriken wie CPU-Zeit, Pufferlesezugriffe und Datenträgerlesevorgänge. Beachten Sie, dass die Registerkarte Testergebnisse für Profile nicht angezeigt wird, wenn der Vergleichsbericht nicht generiert wird.
    • Vergleichen Sie die Schritte im ursprünglichen und im neuen Ausführungsplan der SQL-Anweisung auf der Registerkarte Explain-Pläne. Dieser Vergleich wird in einer Tabellenansicht bereitgestellt. Sie können jedoch Grafischer Erklärungsplan in der Dropdown-Liste Ansichtsoption auswählen, um eine grafische Darstellung des Erklärungsplans anzuzeigen. Klicken Sie in der Ansicht Grafischer Erklärungsplan auf Drehen, oder verwenden Sie die Maus und das Touchpad, um durch den Erklärungsplan zu scrollen und die Abfolge der Vorgänge anzuzeigen.
  3. Klicken Sie auf Schließen, um zur Seite SQL Tuning Advisor-Aufgabendetails zurückzukehren.