ebook img

SQL-Anfragen: Optimierung für parallele Bearbeitung PDF

253 Pages·1991·8.295 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview SQL-Anfragen: Optimierung für parallele Bearbeitung

FZI -Berichte Informatik Herausgegeben vom Forschungszentrum Informatik an der UniversWit Karlsruhe (FZI) Herausgebergremium: R. Dillmann G. Goos P. C. Lockemann U. Rembold W. Rosenstiel G. von B tiltzingsloewen SQL-Anfragen Optimierung fur parallele Bearbeitung Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest Herausgeber Forschungszentrum Informatik an der Universitat Karlsruhe (FZI) Haid-und-Neu-StraBe 10-14, W-7500 Karlsruhe 1, BRD Autor GUnter von Btiltzingsloewen Forschungszentrum Informatik an der Universitat Karlsruhe (FZI) Haid-und-Neu-StraBe 10-14, W-7500 Karlsruhe 1, BRD ISBN-I3: 978-3-540-54252-0 e-ISBN-13: 978-3-642-76760-9 DOl: 10.1007/978-3-642-76760-9 Dieses Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte. insbesondere die der Ubersetzung. des Nachdrucks. des Vortrags. der Entnahme von Abbildungen und Tabellen. der Funksen· dung. der Mikroverfilmung oder der Verviemiltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen. bleiben. auch bei nur auszugsweiser Verwertung. vorbehalten. Eine Verviel faltigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulassig. Sie ist grundsatzlich vergiitungspflichtig. Zuwiderhandlun gen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. © Springer-Verlag Berlin Heidelberg 1991 Satz: Reproduktionsfertige Vorlage vom Autor Druck-u. Bindearbeiten: Weihert-Druck. Darmstadt 45/3140-543210 - Gedruckt auf saurefreiem Papier Vorwort In relationalen Datenbanksystemen werden Benutzeranfragen in der Regel in einer deskriptiven Anfragesprache formuliert, wobei SQL heute die Standard-Sprache ist. Damit wird nur das gewiinschte Ergebnis charakterisiert, aber kein Algorithmus angegeben, nach dem sich das Er gebnis gewinnen laBt. Von herausragender Bedeutung fiir die Effizienz eines Datenbanksystems ist daher die Anfrageoptimierung, die zu einer Anfrage einen moglichst giinstigen Bearbeitungs plan zu bestimmen hat. Die vorliegende Arbeit befaBt sich mit der Anfrageoptimierung in parallelen relationalen Datenbanksystemen. Genauer gesagt geht es urn die Frage, wie die in den letzten Jahren ent wickelten Techniken zur parallelen Anfragebearbeitung (Fragmentierung und Verteilung von Relationen, parallele Join-Algorithmen usw.) in optimaler Weise zur parallelen Bearbeitung komplexer SQL-Anfragen eingesetzt werden konnen. Dieses Optimierungsproblem laBt sich in naheliegender Weise in zwei Teilprobleme zerlegen: die Bestimmung giinstiger nicht-paralleler Bearbeitungsplane und die Parallelisierung solcher Plane. Fiir die Optimierung von SQL-Anfragen in nicht-parallelen Datenbanksystemen gibt es be reits eine groBe Anzahl von Techniken, die jedoch in den unterschiedlichsten Darstellungsformen formuliert sind und deren Zusammenwirken oft unklar ist. Dariiber hinaus werden nicht in jedem Fall Plane erzeugt, die auf mengenorientierten algebraischen Operationen beruhen, wie es fiir die Parallelisierung erforderlich ist. Urn diese Probleme zu losen, wird fiir den ersten Optimierungs schritt eine erweiterte relationale Algebra entwickelt, in die sich, wie gezeigt wird, SQL-Anfragen relativ direkt iibersetzen lassen und auf deren Basis die bekannten Optimierungstechniken in tegriert und soweit notwendig erganzt werden konnen. Besonderes Gewicht wird dabei auf den formalen Korrektheitsnachweis gelegt, da die bisherigen Techniken aufgrund einer informellen Darstellung insbesondere bei der Aufiosung geschachtelter SQL-Anfragen haufig fehlerhaft sind. Die damit vorliegenden Ergebnisse sind auch bei jeder sequentiellen SQL-Implementierung von Nutzen. Das Problem bei der bisher nur sehr eingeschrankt untersuchten Generierung paralleler Be arbeitungsplane ist die groBe Anzahl der Moglichkeiten zur Parallelisierung durch Node Split ting oder Pipelining, die eine zielgerichtete und effiziente Suche nach dem giinstigsten Plan unabdingbar macht. Fiir den zweiten Optimierungsschritt wird daher eine Technik entwickelt, mit der unterschiedliche parallele Bearbeitungsplane auf effiziente Weise generiert und bewer tet werden konnen. Grundideen sind dabei zum einen die abstrakte Beschreibung paralleler Bearbeitungsplane durch Meta-DatenfiuBprogramme, zum anderen die Bewertung von Planen durch Konstruktion von Parallelitatsprofilen. Es wird gezeigt, wie sich auf der Grundlage dieser Techniken sinnvolle Parallelisierungsstrategien formulieren lassen. Dieses Buch ist die leicht iiberarbeitete Fassung meiner Dissertation, die im Rahmen des KARDAMOM-Projekts am FZI entstanden ist und am 18.7.1990 von der Fakultat fiir Informa tik der Universitat Karlsruhe angenommen wurde. In diesem Zusammenhang mochte ich mich ganz herzlich bei allen bedanken, die zum Gelingen der Arbeit beigetragen haben. Mein Dank gilt insbesondere Rerrn Prof. Dr. P.C. Lockemann fiir die intensive Betreuung der Arbeitj ihm wie auch Rerrn Prof. Dr. J. Calmet fiir die zahlreichen konstruktiven Anmerkungen zu friiheren vi Versionen der Arbeit und die ziigige Erstellung der Gutachtenj und meinen Kollegen am FZI, insbesondere den KARDAMOM-Mitarbeitern R. Kramer, R.-P. Liedtke und M. Schryro, fiir das angenehme Arbeitsklima, die zahlreichen Diskussionen und das weitgehende Freistellen von der Projektarbeit in den Monaten vor der Promotion. Nicht vergessen will ich die zahlreichen Stu denten, die im Rahmen von HiWi-Tii.tigkeiten, Studien- und Diplomarbeiten wichtige Beitrii.ge erbracht habenj besonders danke ich hier den beiden ehemaligen Diplomanden C. Kilger und D. Theobald fiir ihre engagierte und konstruktive Mitarbeit. Karlsruhe, im Juni 1991 Giinter von Biiltzingsloewen Inhaltsverzeichnis 1 Einleitung 1 1.1 EinfUhrung des Optimierungsproblems 1 ........... 1.1.1 Anfragen 1 1.1.2 Parallele Anfragebearbeitung 2 1.1.3 Optimierungsziel . . . . . . 3 1.2 Techniken der Anfrageoptimierung 5 1.2.1 Komplexita.tsaspekte . . . . 5 1.2.2 Regelbasierte Optimierung 6 1.2.3 Anfragedarstellung . . . . . 6 1.2.4 Transformationsregeln . . . 7 1.2.5 Suchraum und Suchstrategie 7 1.2.6 Kostenbewertung . 9 ...... 1.3 Kernprobleme der Arbeit 9 1.4 Vorgehensweise . . . . . . . . . . . . 12 1.5 Abgrenzung gegeniiber anderen Problemstellungen 13 2 Grundlagen und Literaturiiberblick 15 2.1 Relationale Anfragesprachen. . . 15 2.1.1 Relationales Datenmodell 15 2.1.2 Relationale Algebra ... 15 2.1.3 Relationaler Kalkiil. . . . 17 2.1.4 Erweiterung urn Aggregatfunktionen 18 2.1.5 SQL .................. 19 2.2 Parallele Anfragebearbeitung ........ 20 2.2.1 Klassifikation von Systemumgebungen 20 2.2.2 Datenverteilung ............. 22 2.2.3 Bearbeitungsmethoden ......... 24 2.2.3.1 Zugriff auf eine Basisrelation 24 2.2.3.2 Verbund zweier Relationen (Join) 24 2.2.3.3 Zusammenfassung . 25 2.2.4 Bearbeitungsplan ....... 26 2.2.4.1 DatenfluBprogramm 26 2.2.4.2 Parallelisierung. . . 27 2.2.4.3 Zuordnungsentscheidungen 28 2.3 Anfragetransformation . . . . . . . . . 29 ... 2.3.1 Transformation in der Algebra 29 2.3.2 Transformation im Kalkiil . . . . . . 30 2.3.3 Transformation vom Kalkiil in die Algebra 31 2.3.4 Transformation und Ubersetzung von SQL-Anfragen 33 viii Inhaltsverzeichnis 2.4 Parallelisierung........................... 35 2.4.1 Ansiitze zur Parallelisierung wiihrend der Optimierung . 35 2.4.2 Theorie der Ablaufplanung ............... . 37 2.4.2.1 Problemstellung ................ . 37 2.4.2.2 Konstruktion von Ablaufpliinen minimaler Lange. 38 3 Grundkonzept des Optimierers 43 3.1 Losungsansatz................................... 43 3.1.1 Regelbasierte Optimierung ....................... 43 3.1.2 Anforderungen an Anfragerepriisentation und Transformationsregeln 44 3.1.3 Konkretisierung der Vorgehensweise . 45 3.1.4 Priizisierung der Optimierungsphasen 47 3.2 Anfragerepriisentation . . . . . . . . . 47 3.2.1 Funktionale Darstellungsform . 47 3.2.2 Erweiterte relation ale Algebra. 48 3.2.3 Bearbeitungspliine ...... . 49 3.3 Anfragetransformation und Generierung algebraischer Ausdriicke 50 3.4 Generierung paralleler Bearbei tungspliine 52 3.4.1 Transformationsregeln ... 52 3.4.2 Parallelisierungsstrategien..... 55 4 Erweiterte relationale Algebra und SQL 57 4.1 Spezifikation der erweiterten relationalen Algebra. 57 4.1.1 Definition der Werte und Typen ... 57 4.1.2 Definition der Grundfunktionen . . . . . . . 60 4.1.2.1 Komposition von Funktionen ... 60 4.1.2.2 Funktionen auf atomaren Datentypen 60 4.1.2.3 Tupelfunktionen . 61 4.1.2.4 Mengenfunktionen 62 4.1.3 Relationale Operatoren 63 4.1.4 Ausdriicke. . . . . . . . . . 64 4.1.5 Weitere Schreibweisen ... 66 4.1.5.1 Kompakte Darstellung von Tupelkonstruktoren . 66 4.1.5.2 Kompakte Darstellung von Priidikaten 67 4.1.5.3 Ableitbare relation ale Operatoren .. 67 4.1.6 Einordnung der bisherigen Darstellungsformen 69 4.2 Die Anfragesprache SQL . 69 4.2.1 Datenmodell .................. . 69 4.2.2 Syntax....................... 70 4.2.3 Semantik: Ubersetzung in die erweiterte relation ale Algebra . 71 4.2.3.1 Terme .. 71 4.2.3.2 Priidikate... 72 4.2.3.3 Anfragen... 72 4.2.3.4 Unteranfragen 75 4.3 Beispiele fiir die Ubersetzung von SQL-Anfragen 77 Inhaltsverzeichnis ix 5 Grundlagen der Anfragetransformation 85 5.1 Uberblick . . . . . . . . . . 85 5.2 Pradikat-Transformation . . 85 5.3 Gruppierende Abbildungen 87 5.3.1 Definition...... 87 5.3.2 Konstruktion .... 89 5.4 Ersetzung nicht geschlossener Ausdriicke . 92 5.4.1 Korrekte Ersetzung ....... . 92 5.4.2 Verlustfreie Ersetzung . . . . . . . 94 5.4.3 Aufiosung von Unteranfrage-Pradikaten 96 5.4.3.1 Korrekte Aufiosung einer Selektion . 96 5.4.3.2 Verbesserungsmoglichkeiten..... 97 5.4.3.3 Korrekte Aufiosung einer Outer-Selektion 99 5.5 Algebraische Transformationsregeln ..... 100 5.5.1 Distributiv- und Kommutativgesetze 100 5.5.2 Einsparung von Joins 103 5.6 Zusammenfassung ............. . 107 6 Anfragetransformation und Generierung algebraischer Ausdrucke 109 6.1 Uberblick . . . . . . . . . . . . . 109 6.2 Standardisierung . . . . . . . . . . . . . . 111 6.2.1 Pradikat-Transformation ..... . 111 6.2.2 Aufiosung von Existenzquantoren . 113 6.2.3 Aufiosung von Allquantoren .... 114 6.2.4 Aufiosung von Aggregatfunktionen 115 6.2.5 Ergebnis der Standardisierung 116 6.3 Verbesserung algebraischer Ausdriicke 117 6.3.1 Durchschieben der Projektion . 117 6.3.2 Einsparung von Joins ..... 118 6.4 Beispiele fiir Standardisierung und Verbesserung 122 6.5 Aufzahlung algebraischer Ausdriicke ...... . 128 6.5.1 Zielsetzung ................ . 128 6.5.2 Plazierung und Integration von Aufiosungen . 128 6.5.3 Join-Reihenfolge .... . 130 6.5.4 Ergebnis der Aufzahlung ...... . 130 7 Implementierung relationaler Operatoren 133 7.1 Grundlagen ......................... . 133 7.1.1 Tupellisten ..................... . 133 7.1.2 Korrekte Implementierung relationaler Operatoren 134 7.1.3 Eigenschaften von Tupellisten . 134 7.2 Zugriffspfade .................. . 135 7.2.1 Zugriff auf Basisrelationen ....... . 135 7.2.1.1 Physisches Datenbankschema . 136 7.2.1.2 Sequentieller Zugriff . 137 7.2.1.3 Selektiver Zugriff ...... . 138 7.2.2 Zugriff auf Tupellisten . . . . . . . . . 138 7.2.3 Zugriff auf atomare Werte und Tupel . 140 7.3 Sequentielle Bearbeitung relationaler Operatoren 141 7.3.1 Konkatenation .............. . 141 x Inhaltsverzeichnis 7.3.2 Filterung .. 141 7.3.3 Join ..... 143 7.3.4 Aggregierung 144 7.3.5 Division ... 147 7.3.6 Ergebnisbildung 148 7.3.7 Beispiel fiir eine sequentielle Implementierung . 149 7.4 Einsatz von Indizes ..... . 149 7.5 Ausnutzung einer Sortierung 150 7.5.1 Merge-Join ..... . 150 7.5.2 Aggregierung .... . 151 7.5.3 Beispiel fiir die Ausnutzung einer Sortierung 152 7.6 Verwendung von Hashing 152 7.6.1 Hashing-Join ............. . 152 7.6.2 Aggregierung ............. . 153 7.6.3 Beispiel fiir den Einsatz von Hashing . 153 7.7 Zerlegung von Operationen in Phasen 154 7.8 Zusammenfassung ...... . 155 8 Grundlagen der Parallelisierung 157 8.1 Uberblick ..... . 157 8.2 Datenfiu6progra.mm 158 8.2.1 Struktur ... 158 8.2.2 Konstruktion 161 8.3 Meta-Datenfiu6progra.mm 163 8.3.1 Struktur ..... . 163 8.3.2 Konstruktion des Meta.-Datenfiu6progra.mms: Node Splitting 165 8.3.2.1 Zugriff auf eine Ba.sisrelation 165 8.3.2.2 Filterung..... 166 8.3.2.3 Existenzquantor. 166 8.3.2.4 Join und Semijoin 166 8.3.2.5 Merge-Join .... 168 8.3.2.6 Aggregierung... 168 8.3.3 Konstruktion des Meta-Datenfiu6progra.mms: Pipelining . 170 8.3.4 Beispiel fiir die Konstruktion eines Meta.-Datenfiu6progra.mms 171 8.4 Transformationen auf dem Meta.-Datenfiu6progra.mm . 172 8.4.1 Node Splitting ........................ . 173 8.4.2 Pipelining ........................... . 173 8.4.3 Beispiel fiir den Einsatz von Node Splitting und Pipelining 174 8.5 Abbildung des Meta-Datenfiu6progra.mms auf ein Datenfiu6progra.mm 175 8.5.1 Generierung der Teilknoten .............. . 175 8.5.2 Vorliegende Zerlegung der Operanden ......... . 176 8.5.3 Partitionierung und Anpassung des Operandenzugriffs . 179 8.5.4 Beispiel fiir die Abbildung auf ein Datenfiu6programm . 181 8.5.5 Einsparung iiberfiiissiger Knoten .... 181 8.6 Generierung eines para.llelen Bearbeitungsplans 182 8.7 Zusa.mmenfassung ............... . 184 Inhaltsverzeichnis xi 9 Kostenmodell 185 9.1 Zielsetzung und Vorgehensweise . 185 9.2 Kostenarten.. 186 9.3 Kostenanteile . . . 187 9.4 Kostenfaktoren . . 189 9.5 Kostenfunktionen. 191 9.5.1 Kosten der Zugrifi'soperationen 191 9.5.2 Kosten der Bearbeitungsoperationen 193 9.5.3 Kosten der Ergebnisubermittlung . . 195 9.6 Bewertung eines parallelen Bearbeitungsplans 195 9.6.1 Definition und Kennzahlen eines Parallelitiitsprofils . 195 9.6.2 Konstruktion eines Parallelitiitsprofils .. . . . . . . 198 9.6.3 Bestimmung der Bearbeitungskosten und der Bearbeitungszeit 201 9.7 Bewertung eines Meta-Datenfiufiprogramms . . . 202 9.7.1 Ausgangspunkt.................... 202 9.7.2 Kosten der Teilknoten eines Metaknotens . . . . . 203 9.7.3 Initiale Verteilung von Teilknoten auf Prozessoren 204 9.7.4 Konstruktion von Pipeboxen ............ 204 9.7.5 Zusammensetzen der Pipeboxen zu einem Parallelitiitsprofil 208 9.7.6 Bestimmung der Bearbeitungskosten und der Bearbeitungszeit 209 9.7.7 Neubewertung nach einem Parallelisierungsschritt .... 209 9.7.8 Beispiel fUr die Bewertung anhand des Parallelitiitsprofils 210 10 Parallelisierungsstrategien 213 10.1 Aufgaben einer Parallelisierungsstrategie . . . . . . . . . . . 213 10.2 Heuristiken zur Erzeugung eines Meta-Datenfiufiprogramms 215 10.2.1 Konstruktion des Meta-Datenfiufiprogramms .... 215 10.2.1.1 Auswahl des Parallelisierungsschemas beim Join 215 10.2.1.2 Auswahl des Parallelisierungsschemas bei der Aggregierung 216 10.2.1.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 10.2.2 Phasenzerlegung: Vermeidung von Hauptspeicheruberlauf . . . . . 217 10.2.3 Node Splitting und Pipelining zur Vermeidung von Auslagerungen 218 10.2.4 Kopplung der Parallelisierung aufeinanderfolgender Knoten 219 10.3 Heuristiken auf der Basis des Parallelitatsprofils. . . . . . . . . . . . 221 10.3.1 Betrachtung zeitkritischer Meta-Pipes . . . . . . . . . . . . . 221 10.3.2 Auswahl von Meta-Pipes fUr den Einsatz von Node Splitting 222 10.3.3 Parallelisierung einer Meta-Pipe durch Node Splitting . 223 10.3.4 Auswahl von Meta-Pipes fUr den Einsatz von Pipelining 224 10.4 Heuristiken fur die Zuordnung . 225 10.5 Zusammenfassung ......................... 226 11 Zusammenfassung und Ausblick 227 11.1 Hauptergebnisse der Arbeit 227 11.2 WeiterfUhrende Arbeiten . 230 Anhang 233 Literaturverzeichnis 239

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.