Mittwoch, August 22, 2012

Optimierung durch Histogramm-Löschung

Jonathan Lewis hat in seinem Blog einen interessanten Fall beschrieben, in dem die Löschung von Histogrammen einen positiven Effekt auf die Performance von Zugriffen brachte. Allerdings sind in seinem Beispiel die Histogramme nicht das grundlegende Problem (oder höchstens ein Teil davon), denn sie liefern eigentlich eine korrekte Information, die den CBO dann allerdings auf einen unglücklichen Weg bringt, bei dem massive Loops (in diesem Fall hervorgerufen durch FILTER-Operationen) die Laufzeit erhöhen. Die Ursache für dieses Verhalten ist anscheinend ein Bug beim Costing von (zumindest bestimmten Typen von) Subqueries. Interessant ist der Artikel auch als Beispiel für ein strukturiertes Vorgehen bei der Analyse von SQL-Zugriffsproblemen.

Keine Kommentare:

Kommentar veröffentlichen