Mittwoch, August 31, 2011

MIN/MAX Abfragen und Index-Verwendung

Dieser Tage hat Richard Foote in seinem Blog eine Quizfrage zur Abfrage der minimalen und maximalen Werte einer indizierten Spalte gestellt und inzwischen dazu auf eine ausführliche Antwort geliefert. Kurz zusammengefasst geht es darum, dass eine Query:

select min(col_ind)
     , max(col_ind)
  from ...

den bestehenden Index nur zum INDEX FAST FULL SCAN verwenden kann, während der wünschenswerte INDEX FULL SCAN (MIN/MAX) nur nutzbar ist, wenn man daraus zwei Zugriffe macht, was auf verschiedenen Wegen möglich ist.

Herr Foote und die Kommentatoren sprechen eher über B*Tree-Indizes, aber das Verhalten von Bitmap-Indizes ist identisch.

Keine Kommentare:

Kommentar veröffentlichen