Mittwoch, Februar 10, 2010

Bitmap Indizes - Teil 3

Gestern Abend habe ich dann endlich das gemacht, was von Beginn an naheliegend gewesen wäre, nämlich an der richtigen Stelle nachgelesen. Die richtige Stelle war Cost Based Oracle Fundamentals von Jonathan Lewis, wo ich im Kapitel 8 zu den Bitmap Indizes unter anderem folgende Hinweise gefunden habe:
  • wie allgemein bekannt bringen Bitmap Indizes jede Menge Ärger bei DML-Operationen, da sie massive Lock-Effekte (auch Deadlocks) hervorrufen; deshalb sind sie eher für DSS- als für OLTP-Systeme gedacht (dieser Punkt war mir auch ohne JL klar)
  • der Clustering Factor spielt für Bitmap Indizes keine Rolle: er wird immer auf den Wert von NUM_ROWS gesetzt, was natürlich mit der Clusterung nichts zu tun hat, und er wird für die Kostenberechnung des cbo nicht berücksichtigt. Da der cbo auf diese Weise aber keine Hinweise auf die Clusterung der Daten hat, ist die Kostenberechnung für Bitmap Indizes in diesem Punkt recht fragwürdig.
  • laut JL kann die Definition mehrspaltiger Bitmap Indizes durchaus sinnvoll sein, und unter Umständen ist der dabei erzeugte Index sogar kleiner als die entsprechenden Einzelspaltenindizes.
  • die Zugriffsperformance für das Abrufen von größeren Datenmengen wird vom Indextyp nicht entscheidend beeinflusst, da die Hauptarbeit in diesem Fall beim Lesen der Tabellenblocks liegt.
Natürlich findet man bei Jonathan Lewis noch sehr viel mehr Informationen, aber das waren jetzt die Antworten auf die Fragen, die mich aktuell beschäftigt hatten.

Nachtrag: in Mr. Lewis' Blog wurde das Thema des Clustering Factors für Bitmap-Indizes vor einigen Monaten auch angesprochen, aber das hatte ich inzwischen auch schon wieder vergessen...

Noch ein Nachtrag: weitere Details findet man in einer Präsentation von Julian Dyke zu den Bitmap Internals.

Keine Kommentare:

Kommentar veröffentlichen