30.08.2013 Aufrufe

Green-IT und Datenbanken - ODBMS

Green-IT und Datenbanken - ODBMS

Green-IT und Datenbanken - ODBMS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6.2.2 Indexstrukturen in Caché<br />

6.2 Energieeffizienz <strong>und</strong> Indizes<br />

Caché bietet wie andere <strong>Datenbanken</strong> die Möglichkeit, Indizes für die in der Datenbank<br />

enthaltenen Daten anzulegen. Diese benötigen zusätzlichen Speicherplatz <strong>und</strong><br />

sind getrennt von den Daten des TPC-H abgespeichert. Caché bietet zwei Arten von<br />

Indizes an.<br />

Konventioneller Index<br />

Der Index bei Caché unterscheidet sich von der Funktionsweise nicht von dem einer<br />

relationalen Datenbank. Dieser enthält Tupel von Schlüsselattributen, <strong>und</strong> Referenzen<br />

auf die ID <strong>und</strong> stellt eine Ordnungsrelation für die Schlüsselattribute da. Eine<br />

einfache Ordnungsrelation ist das Sortieren nach einer Randbedingung, <strong>und</strong> kann z.B.<br />

bei Zahlenwerten auf- oder absteigend sein. Der Index kann bei Abfragen, die auf der<br />

referenzierten Spalte operieren, effizienter die abgefragten Datensätze bereitstellen,<br />

da durch die vorhandene Ordnungsrelation keine sequentielle Suche auf der Spalte<br />

erfolgen muss. Der erste Index in unserem Datenmodell ist jede Spalte, die einen Primärschlüssel<br />

enthält. Die Struktur, in der der Index abgespeichert, ist ein B + -Baum<br />

[Wer07].<br />

Ein zusätzlich angelegter Index benötigt immer zusätzlichen Speicherplatz. Caché<br />

speichert die Indizes wie die Daten in Globals, wobei der Inhalt des Globals für einen<br />

Index nur eine Referenz auf den indizierten Datensatz enthält. Bei einer Aktualisierung<br />

der Daten muss zusätzlich der Index aktualisiert werden, falls eine indizierte<br />

Spalte von der Aktualisierung betroffen ist. Dies bedeutet einen höheren Aufwand<br />

beim Ändern der Daten. Darum ist es von Vorteil, wenn die Anzahl der Indizes nicht<br />

hoch ist, um bei Aktualisierungen, unnötige Kosten zu vermeiden.<br />

Bitmap-Index<br />

Caché bietet neben dem konventionellen Index noch den Bitmap-Index zur Indizierung<br />

von Daten an. Dieser eignet sich für Spalten mit einer hohen Selektivität. Das<br />

sind die Spalten, bei denen ein konventioneller Index keine Steigerung der Effizienz<br />

bringt. Bei einem Bitmap-Index werden die indizierten Attribute einem Schlüssel in<br />

Form von einem Bitvektor zugeordnet. Der Vorteil ist, dass man bei einer multidimensionalen<br />

Suche nur Bitvektoren miteinander vergleichen muss. Tabelle 6.5 enthält<br />

Datensätze die eine hohe Selektivität haben (Geschlecht <strong>und</strong> Familienstand). Tabelle<br />

6.6 zeigt den resultierenden Bitmap Index. Wenn nun eine Abfrage alle Elemente der<br />

Tabelle sucht die ledig <strong>und</strong> männlich sind ist die Suchmaske 10010. Die Abfrage kann<br />

mit einem Bitmap-Index schnell verarbeitet werden, da es sich bei der Abfrage im<br />

Kern um Binäroperationen handelt, die sehr effizient auf dem Prozessor ausgeführt<br />

werden können. Der Bitmap-Index benötigt durch seine Struktur wesentlich mehr<br />

Speicherplatz als ein konventioneller Index, <strong>und</strong> es ist daher aufwändiger ihn bei Veränderung<br />

der Daten zu aktualisieren. Aus diesen Gründen wird der Bitmap-Index<br />

häufig bei <strong>Datenbanken</strong> eingesetzt, bei denen überwiegend lesende Transkationen<br />

87

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!