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.

Relative Kosten = 872393642<br />

Call module B.<br />

Output the row.<br />

Abfrageplan<br />

module B<br />

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

Read master map SQLUser.LINE<strong>IT</strong>EM.LINE<strong>IT</strong>EMPRIMARYIDX, looping on L_ORDERKEY and<br />

L_LINENUMBER.<br />

For each row:<br />

Accumulate the sum([expression]).<br />

Abbildung 6.5: Abfrageplan der TPC-H Abfrage 6 ohne zusätzlichen Index.<br />

Während dieser werden die abgefragten Bedingungen für die Spalten l_shipdate,<br />

l_discount <strong>und</strong> l_quantity <strong>und</strong> aus der Tabelle lineitem überprüft. Diese Details<br />

werden im Abfrageplan nicht angezeigt. Für jede Iteration wird die angefragte Summe<br />

aus der Select-Bedingung berechnet.<br />

sum(l_extendedprice * l_discount) as revenue<br />

korrespondiert zu dem Folgenden Teil des Abfrageplans:<br />

For each row:<br />

Accumulate the sum([expression]).<br />

Diese Art der Ausführung erzeugt eine hohe CPU-Last <strong>und</strong> damit einen hohen Energieverbrauch<br />

über die ganze Abfrage hinweg.<br />

Der Abfrageplan für die Ausführung mit zusätzlichem Index ist in Abbildung 6.6<br />

dargestellt. Im Unterschied zum Abfrageplan 6.5 besteht der Abfrageplan 6.6 aus<br />

zwei Modulen. Die Ausführung beginnt mit Modul C welches Modul B aufruft. Modul<br />

B führt eine Iteration mit eingrenzender Auswahl über dem Index der Spalte<br />

l_shipdate aus.<br />

Read index map SQLUser.LINE<strong>IT</strong>EM.LSHIPDATEIDX,<br />

looping on L_SHIPDATE (with a range condition),<br />

L_ORDERKEY, and L_LINENUMBER.<br />

Dies entspricht dem folgenden WHERE-Teil der Abfrage:<br />

l_shipdate >= ToDate(’1994-01-01’,’YYYY-MM-DD’)<br />

and l_shipdate < DateAdd(’yyyy’,1,’1994-01-01’)<br />

Modul B generiert eine temporäre Datei A, indiziert nach der ID für die Datensätze,<br />

die zu der abgefragten Bedingung passen.<br />

99

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!