Database Reference
In-Depth Information
L.: „ Einverstanden. Zu demselben Schluss bin ich auch gekommen, und ich habe den Zu-
ständigen für die jeweilige Datenbank darüber informiert. Da es keine Beschwerden über die
Performanz vorlagen, habe ich dieses Problem nicht weiter untersucht.
P.: „ Kann man die Wartezeit auf ‚buffer busy waits' reduzieren?
L.: „I ch vermute, dass diese Wartezeit zu reduzieren wäre.
P.: „ Was würdest Du dafür unternehmen?
L.: „ Die beiden problematischen Segmente sind wahrscheinlich die Indices der Tabelle
BAU_JOURNAL, in die die Daten eingetragen wurden. Vermutlich entstanden die jeweiligen
Wartezustände wegen der Konkurrenz beim Befüllen derselben Blöcke dieser Indices. Indirekt
bestätigt diese Vermutung die Tatsache, dass diese beiden Indices mit einem großen Abstand
die 2 obersten Positionen im Abschnitt ‚Segments by Row Lock Waits' belegen. Ich würde ver-
suchen, diese Konkurrenz zu minimieren.
P.: „ Wie denn?
L.: „ Beispielweise mit der Hash-Partitionierung der problematischen Indices.
P.: „ Mich interessiert auch das Problem mit den Wartezuständen für library cach lock ' ,
das Du untersucht hast.
L.: „ Das war in der Tat ein interessantes Problem.
P.: „ Womit hast Du die Analyse angefangen?
L.: „ Zunächst schaute ich in der View DBA_HIST_ACTIVE_SESS_HISTORY nach, wel-
che SQL-Anweisungen auf library cache lock ' warteten. Dort entdeckte ich eine einzige SQL
Id. Mich überraschte sehr, dass ich keine SQL-Anweisung mit dieser SQL Id in der SQL-Area
oder im AWR fand.
P.: „ Wie kann denn so was passieren?
L.: „ Das fragte ich mich selber auch. In der View DBA_HIST_ACTIVE_SESS_HISTO-
RY entdeckte ich ein paar Blocker für ‚library cache lock', die selber auf ‚db file sequential
read' beim Ausführen einer SQL-Anweisung mit dem Optimizer Hint CURSOR_SHARING_
EXACT warteten. Danach fiel mir auf, dass sehr viele SQL-Anweisungen aus der jeweiligen
Anwendung das Hint CURSOR_SHARING_EXACT hatten (der Parameter cursor _ sharing
ist auf FORCE für diese Datenbank gesetzt). Da es eine absolut untypische Lösung war, über-
legte ich, ob die Wartezustände für library cache lock ' etwas damit zu tun hatten.
P.: „ Wie konntest Du das verifizieren?
L.: „ Wie oft half eine ganz einfache Methode: SQL-Tracing. In der Trace-Datei fand ich
Folgendes:
Search WWH ::




Custom Search