Bis Oracle 12.2 zum Download verfügbar ist, werde ich mich damit wohl nur theoretisch beschäftigen - also durch die Lektüre von Artikeln zum Thema. Eine der besten Quellen solcher Artikel ist derzeit der Blog von dbi Services - insbesondere, wenn der zugehörige Autor Franck Pachot heißt. Einer dieser Artikel behandelt das in 12.2 eingeführte erweiterte Monitoring zur Index-Verwendung und liefert unter anderem folgende Informationen:
- die View dba_index_usage liefert kumulierte Nutzungsstatistiken für jeden Index.
- in v$index_usage_info finden sich Nutzungsstatistiken seit dem letzten Flush (der alle 15 min stattfindet).
- üblicherweise basieren die Angaben auf Sampling, können bei Bedarf auch für jede Ausführung erfasst werden (was natürlich einen Performance-Overhead hervorruft).
- auch die Verwendung eines Index im Rahmen der gather_%_stats-Aufrufe werden erfasst, so dass die Angaben nur begrenzt Auskunft darüber geben, ob ein Index für Anwendungs-Zugriffe relevant ist.
- die Verwendung eines Index auf einem Foreign Key zur Vermeidung eines table locks (Stichwort: deadlock-Ursache Nr. 1) wird hingegen in den Statistiken nicht erfasst.
Zusammenfassend lässt sich feststellen, dass dieses Monitoring ein Schritt in die richtige Richtung ist, aber nicht ausreicht, um die klassische Frage "kann ich diesen Index gefahrlos löschen?" zu beantworten. Zumal das Thema der Verwendung von Index-Statistiken für den Optimizer ohnehin nicht betroffen ist - aber das kann man dem Monitoring aus meiner Sicht nicht ernsthaft vorwerfen.
Keine Kommentare:
Kommentar veröffentlichen