Freitag, Oktober 08, 2010

Nologging für Indizes

Nur als kurze Aktennotiz: beim Neuaufbau von Indizes in einer Oracle 11.1 Datenbank hatte ich heute den Eindruck, dass die nologging-Option nicht den erwarteten Einfluss auf die Laufzeit hatte: mit und ohne logging benötigte die Operation die gleiche Zeit. Eine Prüfung der redo size in v$sesstat bestätigte die Annahme, dass hier tatsächlich kein Unterschied bestand.

In einer Oracle 10 Datenbank konnte ich für die gleichen Operationen deutliche Unterschiede der Laufzeiten und der Redo-Nutzung beobachten - und fing schon an, über eine grundsätzliche Umgestaltung der Logik für das Logging von CREATE INDEX-Operationen in Oracle 11 nachzudenken (da auch die Pläne der Queries sehr ähnlich aussahen).

Erst ein 10046er Trace zeigte mir dann meinen Denkfehler: die Unterschiede im Verhalten ergaben sich nur indirekt aus dem Logging. Unmittelbar verantwortlich war der Zugriff, der für 10.2.0.4 über scattered read und für 11.1.0.7 über direct path read temp erfolgte - und für direct path Operationen erfolgt aus naheliegenden Gründen kein Logging. Ein paar weiterführende Erläuterungen zur Möglichkeit der Verwendung von direct reads für FTS liefert Christian Antognini.

Keine Kommentare:

Kommentar veröffentlichen