Oracle Tuning und Optimierung Tutorial: Ungünstige SQL-Befehle

Hilfsmittel zum Aufspüren von unperformanten Oracle-SQL-Befehlen


Oracle Schulung   



Inhaltsverzeichnis

Data-Cache

Optimierer

Analysedaten

Ungünstige SQL-Befehle

Explain Plan

Hints

Performance Tipps

Oracle Bücher



Impressum

Prinzip

Der folgende Befehl zeigt für die SQL-Befehle, die sich im SQL-Cache befinden, wie oft sie ausgeführt wurden und wieviele Blockzugriffe sie zur Abarbeitung benötigten. Ausserdem wird die Trefferquote des Befehls im Datencache angezeigt. Damit lassen sich sehr schnell "schlecht optimierte" SQL-Befehle herausfinden. Trefferquoten kleiner 70% deuten regelmäßig darauf hin, dass eine Tabelle vollständig ohne Index-Zugriffe gelesen wird. Ggf. ist ein weiterer Index hinzuzufügen, um den Befehl zu optimieren. Da die Statistik nur die Befehle anzeigt, die sich gerade im SQL-Cache befinden, muss die folgende Abfrage ggf. mehrfach täglich zu unterschiedlichen Zeitpunkten aufgerufen werden.

select to_char(executions, '999G999G990') "executions",
to_char(buffer_gets, '999G999G990') "gets",
to_char(buffer_gets/greatest(nvl(executions,1),1), '999G999G990') "gets je exec",
to_char (round(100*(1-(disk_reads/greatest(nvl(buffer_gets,1),1))),2), '990D00') Trefferquote,
sql_text
from v$sql
where buffer_gets > 1000
order by buffer_gets desc;

Die Einschränkung " buffer_gets > 1000" dient dazu, die Ergebnismenge zu reduzieren. Es werden damit nur relevante Befehle angezeigt.

 

    Oracle Schulung



Stichwörter

Datenbank database ungünstige unoerformatnte -Befehle finden buffer_gets Trefferquote



Werbung:

Schlitten für Kinder

Kleine Pools und Planschbecken für Kinder