Green-IT und Datenbanken - ODBMS
Green-IT und Datenbanken - ODBMS
Green-IT und Datenbanken - ODBMS
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
6 Energieoptimierungen<br />
Index REGIONPRIMARYIDX On RREGIONKEY [IdKey, PrimaryKey, Unique];<br />
Der Vorteil dieser Datenhaltung ist, dass die Primärschlüssel immer sortiert sind,<br />
da die Spalten der Definition eines Index unterliegen. Dies ist für den Workload<br />
des TPC-H von Vorteil, da die Abfragen häufig Beziehungen abfragen, die sich auf<br />
Primärschlüssel beziehen.<br />
Die Fremdschlüsseldefinitionen sehen wie folgt aus:<br />
ForeignKey NATIONIDXFOREIGN(NREGIONKEY) References<br />
User.REGION(REGIONPRIMARYIDX);<br />
Dies ist eine Referenz der Spalte nregionkey aus Tabelle nation auf den Primärschlüssel<br />
der Tabelle region.<br />
Angabe von Wertebereichen: Um die Möglichkeiten von Caché voll ausnutzen<br />
zu können, müssen für die Schlüsselspalten die Wertebereichsdefinition MINVAL <strong>und</strong><br />
MAXVAL genau definiert werden. Bei der Nutzung von Indizes sind diese Werte<br />
für die Datenbank Caché relevant. Unmittelbar nach dem Einlesen der Daten sind<br />
die Werte für die Primärschlüssel so gesetzt: MAXVAL = 2147483647, MINVAL =<br />
-2147483647. Wir ändern den MINVAL bei allen Primärschlüsseln auf 1; eine Ausnahme<br />
bilden die Primärschlüssel der Tabellen region <strong>und</strong> nation für diese Tabellen<br />
muss der MINVAL 0 sein, da solche Primärschlüssel in Rohdaten vorhanden sind.<br />
Ein Beispiel mit festgelegtem Wertebereich:<br />
Property RREGIONKEY As<br />
%Library.Integer(MAXVAL = 2147483647, MINVAL = 0)<br />
[ Required, SqlColumnNumber = 2,<br />
SqlFieldName = R_REGIONKEY ];<br />
ExtentSize Selectivity: Nachdem die Daten nun importiert wurden <strong>und</strong> TPC-H<br />
Schema konform abgebildet wurde, ist es nun nötig, Parameter einzustellen, die für<br />
den Abfrageoptimierer von großer Wichtigkeit sind: Extentsize <strong>und</strong> Selectivity. Diese<br />
Werte werden pro Tabelle festgelegt. Extentsize gibt an wie viele Zeilen in der Tabelle<br />
gespeichert sind, <strong>und</strong> damit die Größe der Tabelle. Die exakte Größe für Extensize<br />
für unser Datenmodell mit 10 GB entnehmen wir Tabelle 6.3 aus der Spalte „Zeilenanzahl“.<br />
Der Wert für die Selektivität wird pro Spalte einer Tabelle festgelegt. Die Selektivität<br />
ist ein statistischer Wert, der die Werteverteilung einer Spalte wiedergibt. Spalten,<br />
die viele verschieden Werte beinhalten, haben eine niedrige Selektivität.<br />
Der Abfrageoptimierer benutzt Extentsize <strong>und</strong> Selectivity, um die Kosten für die<br />
Ausführung einer Abfrage zu berechnen. Wenn es mehrere Möglichkeiten gibt, eine<br />
Abfrage auszuführen, dann entscheidet sich der Abfrageoptimierer für die Möglichkeit,<br />
die sich nach seiner Heuristik als die günstigere erweist. Da die berechneten<br />
Kosten von der Extentsize <strong>und</strong> Selectivity abhängen, ist es notwendig, dass die Werte<br />
aktuell sind, um ein effizientes Arbeiten des Abfrageoptimierers zu gewährleisten.<br />
84