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.2 Energieeffizienz <strong>und</strong> Indizes<br />
Für jede ID wird eine Zeile in eine temporäre Datei B geschrieben, die nach l_shipmode<br />
<strong>und</strong> dem Primärschlüssel indiziert ist <strong>und</strong> die den Datensatz für l_orderkey beinhaltet.<br />
Add a row to temp-file B, subscripted by %SQLUPPER(L_SHIPMODE) and ID,<br />
with node data of L_ORDERKEY.<br />
Die Datei B wird an Modul D übergeben, dass eine Iteration über l_shipmode <strong>und</strong><br />
der ID ausführt.<br />
Read temp-file B, looping on %SQLUPPER(L_SHIPMODE) and ID.<br />
In der Iteration wird in jedem Schritt mit Hilfe des Primärschlüssels von orders überprüft,<br />
ob o_orderkey gleich l_orderkey ist.<br />
Read master map SQLUser.ORDERS.ORDERSPRIMARYIDX,<br />
using the given idkey value.<br />
Die folgenden Operationen sind identisch zu denen, die im Abfrageplan 6.1 ohne zusätzlichen<br />
Index ausgeführt werden. Es ist ersichtlich, dass die Iteration über der<br />
Tabelle lineitem aus dem Abfrageplan ohne Index 6.1 nicht mehr vorhanden ist, falls<br />
ein Index auf l_receiptdate angelegt wird. Die Operation, die wir als kostenintensiv<br />
klassifiziert haben, wurde durch eine Iteration auf dem zusätzlich angelegten Index<br />
ersetzt.<br />
Alle Abfragen wurden nach diesem Muster analysiert. Der Fokus lag auf WHERE-<br />
Bedingungen, die eingegrenzte Werte beinhalten. Spalten, die in dieses Muster passen,<br />
haben wir als mögliche Kandidaten für einen zusätzlichen Index angesehen. Diese<br />
Spalten wurden auf ihre Selektivität hin untersucht, bei Spalten mit niedriger Selektivität<br />
haben wir einen zusätzlichen Index für die Spalte angelegt.<br />
Im Folgenden ist ein Auszug von eingrenzenden Bedingungen bei den TPC-H Abfragen:<br />
l_shipdate ToDate(’1995-03-15’,’YYYY-MM-DD’)<br />
o_orderdate >= ToDate(’1993-07-01’,’YYYY-MM-DD’)<br />
o_orderdate < DateAdd(’m’,3,’1993-07-01’)<br />
o_orderdate >= ToDate(’1994-01-01’,’YYYY-MM-DD’)<br />
o_orderdate < DateAdd(’yyyy’,1,’1994-01-01’)<br />
l_shipdate >= ToDate(’1994-01-01’,’YYYY-MM-DD’)<br />
l_shipdate < DateAdd(’yyyy’,1,’1994-01-01’)<br />
l_shipdate between ToDate(’1995-01-01’,’YYYY-MM-DD’)<br />
ToDate(’1996-12-31’,’YYYY-MM-DD’)<br />
93