Shared SQL-Bereich überwachen (Oracle) 

Einsatzmöglichkeiten

Schlecht geschriebene SQL-Anweisungen haben wahrscheinlich die größte Auswirkung auf die Performance einer Anwendung. Eine SQL-Anweisung, mit der das Oracle-Datenbanksystem Tausende oder sogar Millionen von Speicherböcken liest und/oder sortiert, kann die Datenbank zum völligen Erliegen bringen. Die korrekte Verwendung von Indizes ist ausgesprochen wichtig, um solche Situationen zu vermeiden.

Mit dem SQL-Trace können Sie Probleme analysieren, sofern Sie wissen, welche Transaktion die Probleme verursacht. Als Alternative dazu bietet sich für Oracle-Datenbanken die Analyse des Shared SQL-Bereichs an. Um ressourcenintensive Operationen identifizieren zu können, müssen Datenbankadministratoren mit der Überwachung von SQL-Anweisungen im Shared SQL-Bereich vertraut sein.

Um das Problem zu analysieren, sollten Sie den Shared SQL-Bereich zunächst nach den Spalten Disk reads oder Buffer gets sortieren und die SQL-Anweisungen von oben nach unten analysieren.

Ablauf

  1. Überprüfen Sie zunächst, ob zu den Tabellen, auf die in der Anweisung zugegriffen wird, Indizes fehlen.
  2. Überprüfen Sie, ob für die Tabellen, auf die in der Anweisung zugegriffen wird, aktuelle Statistiken existieren. Nähere Informationen hierzu finden Sie unter Tabellen-/Index-Analyse (Oracle).
  3. Nutzen Sie das SAPNet, um mit dem Schlagwort "Performance" und dem Tabellennamen der ressourcenintensiven SQL-Anweisung nach Hinweisen zu suchen. SAP könnte empfehlen, daß Sie Indizes anlegen oder ändern oder aber Programmkorrekturen vornehmen.
  4. Entscheiden Sie anhand des Explain-Plans (wählen Sie Explain) , ob das Anlegen oder Modifizieren eines Index die Performance der SQL-Anweisung erhöhen könnte. Beachten Sie dabei, daß sich ein neuer Index auch negativ auf die Performance Ihres Systems auswirken kann. Neue Indizes sollten daher nur nach reiflicher Überlegung angelegt werden.

Um zu überprüfen, wie sich das Anlegen eines Index auf die Performance des Systems auswirkt, empfehlen wir folgendes Vorgehen:

  1. Bevor Sie im Bild Database performance: Shared SQL einen Index anlegen, wählen Sie Select Table und geben den Namen der Tabelle ein, für die Sie einen neuen Index anlegen wollen. Das System zeigt alle SQL-Anweisungen an, in denen auf die Tabelle zugegriffen wird. Sichern Sie das Ergebnis der Selektion in einer lokalen Datei.
  2. Legen Sie den gewünschten Index an und wiederholen Sie das oben beschriebene Vorgehen, nachdem die Datenbank einige Zeit produktiv war. Nun können Sie durch den Vergleich der Werte für Reads/Execution vor und nach dem Anlegen des Index ermitteln, auf welche Anweisungen sich das Anlegen des Index positiv und auf welche es sich negativ ausgewirkt hat. (Ebenso sollten Sie die Spalte Gets/Execution untersuchen).

Ein Objekt, auf das ein Programm zugreift, ist u. U. hinsichtlich der Performance nicht in optimalem Zustand. Nähere Informationen hierzu finden Sie unter Überwachen der Tabellen- und Indexfragmentierung (Oracle).

 

Siehe auch:

SQL Request (Shared SQL Area)

Fehlende Indizes

Überprüfen des Optimizer-Modus (Oracle)

Tabellen-/Index-Analyse (Oracle)

Überwachen der Tabellen- und Indexfragmentierung (Oracle)

Tabellendurchsuchungen: Problemanalyse (Oracle)

Überwachen der Tabellenzugriffsmethoden (Oracle)

Überwachen des Shared Pool (Oracle)