Database Reference
In-Depth Information
18
Tuning der problematischen SQL-
Anweisungen
Angenommen, man hat die problematischen SQL-Anweisungen ermittelt. Was macht man
weiter?
Zunächst muss man klären, ob es ein Fall für SQL-Tuning ist. In einigen Situationen
kann kein SQL-Tuning die Performanz der problematischen SQL-Anweisungen verbes-
sern:
• möglicherweise ist es kein Performanz-Problem. Ein Fall dieser Sorte ist im Ab-
schn. 2.1.1 beschrieben,
• die jeweilige SQL-Anweisung ist hängengeblieben. Es kann sein, dass dieser Hänger
durcheinenBugvonOracleodervomBetriebssystemverursachtwird.Esistmöglich,
dassdasBetriebssystemnichtordnungsgemäßkonfiguriertist,wassolcheEffekteauch
auslösenkann.SoeinenFallhatteichbeispielsweisebeieinerDatenbankvonOracle
10.2.0.5 unter LINUX. Dort wartete ein Select ewig lange auf das Warteereignis „read
by other session“ für denselben Datenblock. Dieses Verhalten ist in der Notiz 1166003.1
aus dem MOS beschrieben. Der Hänger wurde durch einen Kernel-Parameter verur-
sacht, der zu niedrig gesetzt war,
• esgibtWarteereignisse,derenWartezeitmannichtmitSQL-Tuningreduzierenkann
(z. B. „enq: TX - allocate ITL entry“ oder „enq: CF - contention“). Wenn die proble-
matischeSQL-AnweisunggeradeaufsoeinEreigniswartet,mussmanandereTuning-
Methoden einsetzen, um die Performanz zu verbessern,
• esistmöglich,dassdasPerformanz-ProblemnichtdieermittelteSQL-Anweisungselbst
verursacht, sondern deren rekursive Cursor,
• etc.
Wenn das Performanz-Problem durch einen schlechten Ausführungsplan verursacht ist,
schlage ich vor, mit dem SQL-Tuning etwas abzuwarten.
Peter: „ Abzuwarten? Auch wenn das Performanz-Problem akut ist?
Search WWH ::




Custom Search