Database Reference
In-Depth Information
Mit dem Skript awr_active_sess_hist112.sql kann man die Einzelheiten in der View DBA_
ACTIVE_SESS_HISTORY ermitteln. Dieses Skript ist das Analogon des Skripts active_
sess_hist112.sql.
17.3
Ermittlung der Top-SQL-Anweisungen für ein Objekt
In diesem Abschnitt beschreibe ich noch eine Methode, die nützlich sein kann, wenn eine
problematische SQL-Anweisung im System ziemlich unauffällig ist.
Peter: „ Ist es kein Widerspruch, dass eine problematische SQL-Anweisung unauffällig
bleibt?
Leonid: „ Wir müssen 2 Arten von Performanz-Problemen voneinander unterscheiden:
Performanz-Probleme der Datenbank und der Anwendung. SQL-Anweisungen, die Perfor-
manz-Probleme der Datenbank verursachen, sind auffällig, weil sie am meisten die jeweili-
gen Datenbankressourcen verbrauchen. Mit den SQL-Anweisungen, welche Performanz-Pro-
bleme der Anwendung verursachen, kann es anders aussehen. Wenn eine SQL-Anweisung
ein Engpass in der Anwendung ist, so dass eine leichte Performanzverschlechterung dieser
SQL-Anweisung bereits gravierende Anwendungsprobleme verursacht, kann diese SQL-An-
weisung ziemlich unauffällig sein.
P.: „ Wenn man nicht weiß, wie die jeweiligen Suchkriterien sind, sind solche SQL-Anwei-
sungen nicht zu ermitteln.
L.: „ Man kann aber versuchen, zunächst diese Suchkriterien zu finden. Obwohl die An-
wender normalerweise keine Ahnung von den für diese Anwendung kritischen SQL-Anwei-
sungen haben, können sie oft den entscheidenden Hinweis geben, aus welchem Anwendungs-
teil das Problem kommt. Sie können beispielsweise einige für das jeweilige Problem relevante
Tabellen nennen. Über diese Tabellen oder über deren Indices kann man dann an die prob-
lematischen SQL-Anweisungen kommen. Es kann auch sein, dass das Computer-System für
die jeweilige Anwendung stark überdimensioniert ist, so dass die meisten SQL-Anweisungen
relativ performant und aus diesem Grund unauffällig sind. In diesem Fall kann man versu-
chen, zunächst die Segmente mit den meisten Logical oder Physical Reads zu ermitteln, um
danach die SQL-Anweisungen finden, welche diese Segmente in deren Ausführungsplänen
benutzen. Man muss sich ans Beispiel aus dem Abschn. 4.2.2 erinnern, wenn man keine SQL-
Anweisungen bei dieser Recherche findet.
P.: „ Du meinst sicherlich das Beispiel mit dem DML-Kommando, das die Statistiken für
Logical oder Physical Reads eines Segments stark beeinflussen kann, obwohl dieses Segment
in dem Ausführungsplan des DML-Kommandos nicht vorkommt.
L.: „ Diese Methode verwende ich auch in den Fällen, wenn ich eine problematische SQL-
Anweisung als SQL-Text aus einem Anwendungsprotokoll bekomme. Sehr oft sind solche Tex-
te nicht zeichengenau oder unvollständig. Dann suche ich die jeweilige SQL-Anweisung über
die beteiligten Objekte.
 
Search WWH ::




Custom Search