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:
- SQL Tuning Advisor: SQL Tuning Advisor in der SQL-Tuning-Dokumentation für Oracle Database.
-
STS und dessen Erstellung: Workloads in SQL Tuning Sets erfassen in der SQL-Tuning-Dokumentation für Oracle Database.
In Database Management Diagnostics & Management können Sie SQL Tuning Advisor verwenden, um die SQL-Anweisungen in einer verwalteten Datenbank zu analysieren.
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:
- 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.
-
- Zeigen Sie die Ergebnisse an: Die Ergebnisse von SQL Tuning Advisor werden im Abschnitt SQL Tuning Advisor-Aufgaben auf der Seite Verwaltete Datenbankdetails angezeigt.
- 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:
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 () 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.

Alle SQL-Profilempfehlungen implementieren
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 () 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
Statistikempfehlung implementieren
Erklärungspläne vergleichen
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: