TAKTUM Logo


Oracle Schulung
Oracle Schulung

Oracle Tuning und Optimierung Tutorial: Ungünstige SQL-Befehle
Hilfsmittel zum Aufspüren von unperformanten Oracle-SQL-Befehlen

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.



Stichwörter

Datenbank database ungünstige unoerformatnte -Befehle finden buffer_gets Trefferquote