Kapitel 5 Anfragebearbeitung

Ähnliche Dokumente
Kapitel 6 Anfragebearbeitung

Anfragebearbeitung. Vorlesung: Dr. Matthias Schubert

Kapitel 6 Anfragebearbeitung

Kapitel 5 Anfragebearbeitung

Kapitel 10: Relationale Anfragebearbeitung

Indexstrukturen in SQL

Datenbanken: Indexe. Motivation und Konzepte

Anfragebearbeitung. Vorlesung: PD Dr. Peer Kröger

Übung Datenbanksysteme II Physische Speicherstrukturen. Thorsten Papenbrock

Skript zur Vorlesung. Da atenbanksy ysteme I. Wintersemester 2010/2011. Vorlesung: PD Dr Matthias Schubert. Relationale Anfragebearbeitung

Übung Datenbanksysteme II Physische Speicherstrukturen. Maximilian Jenders. Folien basierend auf Thorsten Papenbrock

Physische Datenorganisat

Die allerwichtigsten Raid Systeme

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

OPERATIONEN AUF EINER DATENBANK

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung

Datenbanksysteme SS 2013

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Inhalt. Datenbanken Vertiefung. Literatur und Quellen. Inhalt. Anfragebearbeitung. Nikolaus Augsten. Wintersemester 2013/14

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II

Algorithmen II Vorlesung am

Kapitel 8: Physischer Datenbankentwurf

4.3 Hintergrundspeicher

Physische Datenorganisation

Physischer Datenbankentwurf: Datenspeicherung

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

Algorithmen und Datenstrukturen 1

Dateiorganisation und Zugriffsstrukturen

RO-Tutorien 15 und 16

Physische Datenorganisation

Hardware, Fehlertoleranz, Am Beispiel Dateisysteme

RAID. Name: Artur Neumann

Aufbau Datenbanksysteme

Physische Datenorganisation

Betriebssysteme. Tutorium 12. Philipp Kirchhofer

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

FEHLERTOLERANZ EINE SEHR GROBE ÜBERSICHT BETRIEBSSYSTEME UND SICHERHEIT, WS 2016/17 HERMANN HÄRTIG

Sommersemester Vorlesung: Dr. Matthias Schubert

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

Anfrageoptimierung Logische Optimierung

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom

Die Sicht eines Sysadmins auf DB systeme

Bisher haben wir ein RDBMS als Black Box betrachtet und gelernt, wie man es effektiv einsetzen kann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Betriebssysteme K_Kap11C: Diskquota, Raid

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Hauptdiplomklausur Informatik Februar 2006: Multimedia Systems

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Entwicklung der Datenbanksysteme

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Verlässliche Systeme

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Wegweiser. Gegenstand und Begriffe. Dateien und Verzeichnisse. Implementationsaspekte. Ablauf eines Dateizugriffs. Plattenspeicher

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Grundlagen Algorithmen und Datenstrukturen Kapitel 13

Aufgabe 1 Indexstrukturen

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

Kapitel 7 Physische Datenorganisation. Speicherhierarchie Hintergrundspeicher / RAID Speicherstrukturen B-Bäume Hashing R-Bäume

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Physische Datenorganisation. Kapitel / 520

Abschluss Einblick und Ausblick

Query Languages (QL) Relationale Abfragesprachen/Relational

Grundlagen: Datenbanken

Partitionierungsstrategien für Data Vault

Datenbanken Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Virtueller Speicher und Memory Management

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Matthias Schubert. Datenbanken. Theorie, Entwurf und Programmierung relationaler Datenbanken. 2., überarbeitete Auflage. Teubner

Datenbanken. Interne Datenorganisation:

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Kapitel 6 Externes Sortieren

R.A.I.D. Redundant Array of Inexpensive ( oder Independent ) Disks Redundante Reihe billiger (oder unabhängiger ) Laufwerke

Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar Semesterklausur

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Anleitung zur Installation von SATA- Festplatten und zur RAID-Konfiguration

Hash-Join Algorithmen

Datenbanken Implementierungstechniken SS2015

Hash-Verfahren. Prof. Dr. T. Kudraß 1

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN

Moderne RAID Technologie

Tutorium Rechnerorganisation

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

9.3 Fehlerbehandlung

Physische Datenorganisation

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

Technische Informatik 1 - HS 2017

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Übung zu Einführung in die Informatik # 10

Transkript:

Kapitel 5 Anfragebearbeitung Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2008, LMU München 2008 Dr. Peer Kröger Dieses Skript basiert zu einem Teil auf dem Skript zur Vorlesung Datenbanksysteme II von Prof. Dr. Christian Böhm gehalten im Sommersemester 2007 an der LMU München

5 Anfragebearbeitung Übersicht 5.1 Einleitung 5.2 Indexstrukturen 5.3 Grundlagen der Anfrageoptimierung 5.4 Logische Anfrageoptimierung 5.5 Kostenmodellbasierte Anfrageoptimierung 5.6 Implementierung der Joinoperation LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 188

5 Anfragebearbeitung Übersicht 5.1 Einleitung 5.2 Indexstrukturen 5.3 Grundlagen der Anfrageoptimierung 5.4 Logische Anfrageoptimierung 5.5 Kostenmodellbasierte Anfrageoptimierung 5.6 Implementierung der Joinoperation LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 189

5.1 Einleitung HW-Grundlagen Von-Neumann Rechner Architektur: Flaschenhälse Hintergrundspeicher Hauptspeicher Prozessor Hintergrund- speicher- Engpass IO- Engpass Hauptspeicher- Engpass Von-Neumann- Engpass CPU- Engpass Zur Vereinfachung unterscheidet man meist nur zwischen CPU-bound CPU, Arbeitsspeicher und Bus bilden den Hauptengpass I/O-bound Hintergrundspeicher und I/O bilden den Hauptengpass LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 190

5.1 Einleitung HW-Grundlagen (cont.) Schematischer Aufbau einer Festplatte Ein Plattenspeichersystem besteht aus Platten Platte Die Oberfläche der Platten Zylinder besteht aus Spuren Die Spuren bestehen aus Sektoren. Zylinder = alle Spuren mit konstantem Radius Spuren Sektoren Platten rotieren um gemeinsame Achse, der Arm ist in radialer Richtung bewegbar LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 191

5.1 Einleitung Zugriff auf eine Seite: HW-Grundlagen (cont.) Setze den Arm auf den gewünschten Zylinder (Suchen) Warte bis die Platte so rotiert ist, dass sich der Anfang der Seite unter dem Arm befindet (Latenz) Übertrage die Seite in den Hauptspeicher (Transfer) Zugriffszeit = Suchzeit + Latenzzeit + Transferzeit I/O-Rate = erwartete Anzahl von Zugriffen pro Sekunde Übertragungsrate = maximale Anzahl übertragener Bytes pro Sekunde (Bandbreite) LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 192

5.1 Einleitung Speichermedien I/O-Engpass auch mit modernen Platten nicht überwindbar Lösungsansatz: Verwende statt einer großen Festplatte mehrere kleine, die parallel betrieben werden können => RAID-Systeme Die Komplexität wird durch den RAID-Controller nach Außen verborgen => es gibt nur ein (virtuelles) Laufwerk Acht verschiedene RAID-Level die unterschiedliche Zugriffsprofile optimieren LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 193

5.1 Einleitung RAID 0 Speichermedien (cont.) Datenmenge wird durch blockweise Rotation auf die Platten verteilt (Striping) Beispiel: Striping von 4 Blöcken (A,B,C,D) auf zwei Platten Platte 1 Platte 2 A C B D Größtmögliche Beschleunigung: Anfrage an aufeinanderfolgende Blöcke kann parallel bearbeitet werden Fehleranfällig: besteht eine Datei aus vielen Blöcken werden diese über die entsprechenden Platten verteilt Ausfall einer Platte führt zur Beschädigung der Datei LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 194

5.1 Einleitung RAID 1 Speichermedien (cont.) Jedes Laufwerk besitzt eine Spiegelkopie (Mirror) Durch Redundanz ist Fehlerfall eines Laufwerks kein Problem Beispiel: Platte 1 Platte 2 A B A B C D C D Leseoperationen parallelisierbar (wie RAID 0) Schreiboperationen müssen auf beiden Mirrors (parallel) durchgeführt werden LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 195

5.1 Einleitung RAID 0+1 Speichermedien (cont.) Kombination aus RAID 0 und RAID 1 Verteilung der Datenblöcke wie bei RAID 0 Spiegelung der Platten wie bei RAID 1 Platte 1 Platte 2 Spiegel 1 Spiegel 2 A B A B C D C D Vereinigt Vorteile von RAID 0 und RAID 1 ABER: Anzahl der benötigten Platten steigt!!! LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 196

5.1 Einleitung Speichermedien (cont.) Ab RAID 2 wird Datensicherheit ökonomisch günstiger umgesetzt Hilfsmittel: Paritätsinformationen Prüfsumme für mehrere Daten Verwendbar, um Daten auf Korrektheit zu überprüfen Verwendbar, um Daten im Fehlerfall zu rekonstruieren Vorgehen: Speichere zu N Datenbereichen auf unterschiedlichen Platten zusätzlich deren Prüfsumme auf einer anderen Platte Ist einer der N Datenbereiche defekt kann dieser aus der Prüfsumme und den N-1 übrigen (intakten) Datenbereichen wiederhergestellt werden LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 197

5.1 Einleitung RAID 2 Striping auf Bitebene Speichermedien (cont.) Paritätsinformationen auf separaten Platten In der Praxis meist nicht eingesetzt RAID 3 und RAID 4 Striping auf Bit- oder Byte-Ebene (RAID 3) bzw. blockweise (RAID 4) Paritätsinformationen auf einer speziellen Platte Paritätsplatte A1 B1 A2 B2 A3 B3 A4 B4 P A P B C1 D1 C2 D2 C3 D3 C4 D4 P C P D Nachteil: jede Schreiboperation muss auf Paritätsplatte zugreifen LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 198

5.1 Einleitung RAID 5 Speichermedien (cont.) Striping blockweise (wie RAID 4) Verteilung der Paritätsinformationen auf alle Platten A E B F C G D P E-H P A-D H M I N P I-L P M-P J O K P L Damit ist der Flaschenhals der Paritätsplatte beseitigt Schreibeoperationen setzt aber nach wie vor die Neuberechnung und das Ablegen des neuen Paritätsblocks voraus ACHTUNG: Paritätsblock P X kann nur ein Fehler in den Daten X korrigieren! LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 199

5.1 Einleitung Speichermedien (cont.) Abschließende Bemerkungen Wahl des RAID-Levels hängt vom Anwendungsprofil ab (z.b. Anteil der Leseoperationen im Vergleich zu Schreiboperationen) Kommerzielle RAID-System erlauben typischerweise eine flexible Konfiguration Viele DBS unterstützen Striping von Tupeln auf unterschiedliche Platten auch ohne Einsatz von RAID-Systemen Trotz der Fehlertoleranz von RAID-Systemen ist der Einsatz von Recovery-Techniken (Kapitel 4) wichtig LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 200

5.1 Einleitung Der DB-Puffer Operationen auf den Daten im Hauptsp. (DB-Puffer) Seiten, die bearbeitet werden, müssen von der Platte in den Puffer übertragen werden Puffergröße begrenzt => Seiten müssen verdrängt werden Puffer-Verdrängungsstrategien (Steal/No Steal) und Einbringungsstrategien (update-in-place) => Kapitel 4 Ersetzungsstrategie, Prinzip der Lokalität =>Prozessverwaltung in BS Schematisch: DB-Puffer P 4 P 1 P 7 P 4 P 1 P 7 P 5 Anforderung von P 2 Verdrängnung von P 7 P 4 P 1 P 5 P5 P 7 P 2 Hintergrundspeicher LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 201

5.1 Einleitung Abbildung von Relationen auf den HGSP Typischerweise umfasst eine Relation mehrere Seiten Diese werden zu einer Datei zusammengefasst Tupel nicht über mehrere Seiten verteilen, sonst: Geschwindigkeitsverlust beim Zugriff (WARUM?) Synchronisation und Recovery aufwändiger (WARUM?) Jede Seite enthält interne Datensatztabelle Tupel-Identifikator (TID): Seitennummer+Tabelleneintrag TID 0815 2 1 2 3 4 Seite 0815 011048-13, Kriegel, 210571-4, Achtert, 210182-1, Züfle, 210175-8, Kröger, LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 202

5.1 Einleitung Abbildung von Relationen auf den HGSP (cont.) Interne Reorganisation (z.b. Tupel von Achtert vergrößert sich) 1 2 3 4 Seite 0815 TID 0815 1 011048-13, Kriegel, 210182-1, Züfle, 210175-8, Kröger, 210571-4, Achtert, Dank der Seiteninternen Tabelle bleiben alle Verweise (insbesondere auch die TID) gültig LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 203

5.1 Einleitung Abbildung von Relationen auf den HGSP (cont.) Verdrängung eines Tupels von einer Seite (z.b. Tupel von Achtert vergrößert sich weiter) 1 2 3 4 Seite 0815 TID 0815 1 011048-13, Kriegel, 210182-1, Züfle, 210175-8, Kröger, 2373 3 1 2 3 4 Seite 2373 210571-4, Achtert, Nachteil? LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 204

5.1 Einleitung Anfragebearbeitung Zu bearbeitende Seiten müssen vom HGSP in den DB- Puffer geladen werden Problem: Verwaltung der Daten auf einem Speichermedium sequentiell Zeitaufwand für Bearbeitung einer Suchanfrage: O(n) (im ungünstigsten Fall alle n Datensätze durchsuchen) Wird ein bestimmter Datensatz anhand eines Suchkriteriums gesucht, kann über eine Indexstruktur eine aufwändige Suche vermieden werden Der Index erlaubt es, die Position des Datensatzes innerhalb des Mediums schnell zu bestimmen. LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 205

5 Anfragebearbeitung Übersicht 5.1 Einleitung 5.2 Indexstrukturen 5.3 Grundlagen der Anfrageoptimierung 5.4 Logische Anfrageoptimierung 5.5 Kostenmodellbasierte Anfrageoptimierung 5.6 Implementierung der Joinoperation LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 206

5.2 Indexstrukturen Aufbau baumartiger Indexstrukturen Baumartige Indexstrukturen bestehen üblicherweise aus Directory- und Datenseiten: Die eigentlichen physischen Datensätze werden in den Datenseiten gespeichert (Blattknoten des Baums). Die Directoryseiten sind die inneren Knoten des Baums und speichern die Directory-Einträge, die aus aggregierten Zugriffsinformationen bestehen und die Navigation im Baum ermöglichen. Index/Directory Directoryseiten Physische Datensätze Datenseiten LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 207

5.2 Indexstrukturen Beispiel B+-Baum Erweiterung des B-Baums (vgl. Vorlesungen Effiziente Algorithmen, Index- und Speicherstrukturen) Datenelemente nur in den Blattknoten speicheren Innere Knoten enthalten lediglich Schlüssel B + -Baum für die Zeichenketten: An, And, Certain, For, From, Which, With LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 208

5.2 Indexstrukturen Modellierung der I/O-Kosten In DBS sind zwei verschiedene I/O-Zugriffsmuster vorherrschend: Sequentielles Lesen einer großen Datei (Verarbeitung von Relationen ohne Index) Wahlfreies Lesen von Blöcken konstanter Größe, wobei die einzelnen Blöcke an wahlfreien Positionen beginnen (Verarbeitung von Relationen mit Hilfe eines Index) Seien f Größe der Datei in MByte a c puffer c index t seek t lat t tr Anzahl der Blockzugriffe Größe des Puffers im Arbeitsspeicher in MByte Blockgröße des Index in MByte Suchzeit in ms Latenzzeit in ms Transferleistung des Laufwerkes in ms/mbyte LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 209

5.2 Indexstrukturen Modellierung der I/O-Kosten (cont.) Sequentielles Lesen Da der Arbeitsspeicher begrenzt ist, erfolgt das sequentielle Lesen einer Datei in einzelnen Blöcken, die zwischen den I/O- Aufträgen verarbeitet werden: Bei der ersten Leseoperation wird der Schreib-/Lesekopf auf die entsprechende Position gesetzt. Bei jeder weiteren Leseoperation fallen nur noch Latenzzeit und Transferzeit an. t scan = t seek f puffer Meist wählt man den Puffer so groß, dass die Transferzeit pro Leseoperation wesentlich höher als die Latenzzeit ist. In diesem Fall können Latenz- und Suchzeit vernachlässigt werden: t f scan t tr + t tr + c f t lat LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 210

5.2 Indexstrukturen Modellierung der I/O-Kosten (cont.) Wahlfreies Lesen Bei wahlfreien Zugriffen fallen bei jedem Auftrag sowohl Transferzeit, Latenzzeit als auch Suchzeit an: t random = ( t + t + c t ) a seek lat index tr Verglichen mit der scanbasierten Verarbeitung ist die Größe c index einer Transfereinheit hier nicht durch den zur Verfügung stehenden Arbeitsspeicher, sondern durch die Blockgröße des Indexes vorgegeben (und typischerweise wesentlich kleiner, z.b. 4-8 KBytes). LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 211

5.2 Indexstrukturen Wahlfreier vs. sequentieller Zugriff Ein sequentieller Zugriff auf n Datenblöcke ist in etwa n- mal schneller als n nacheinander ausgeführte wahlfreie Zugriffe auf die Datenblöcke (für große n) Transferraten wachsen schneller als Zugriffsraten => Verhältnis wahlfreier zu sequentieller Zugriff verschlechtert sich Folgende Maßnahmen sind deshalb wichtig: Große Blöcke: Die Wahl größerer Transfereinheiten verbessert das Verhältnis Clusterbildung der Daten: Die Daten sollten von einer Indexstruktur so in Blöcken abgelegt werden, dass mit großen Blöcken in möglichst wenigen Zugriffen möglichst viele nützliche Daten übertragen werden LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 212

5 Anfragebearbeitung Übersicht 5.1 Einleitung 5.2 Indexstrukturen 5.3 Grundlagen der Anfrageoptimierung 5.4 Logische Anfrageoptimierung 5.5 Kostenmodellbasierte Anfrageoptimierung 5.6 Implementierung der Joinoperation LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 213

5.3 Grundlagen der Anfrageoptimierung Aufgabe der Anfragebearbeitung Übersetzung der deklarativen Anfrage in einen effizienten, prozeduralen Auswertungsplan deklarative Anfrage Scanner/Parser View-Ersetzung algebraischer Ausdruck Auswertungsplan Anfrageoptimierung Ausführung LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 214

5.3 Grundlagen der Anfrageoptimierung Kanonischer Auswertungsplan π[ A 1, A2 ] SELECT A 1, A 2 π FROM R 1, R 2 WHERE B 1 AND B 2 ( σ B ( σ B ( R1 2))) A 1, A R 2 2 1 σ[ B 2 ] σ[ B 1 ] x R 1 R 2 1. Bilde das kartesische Produkt der Relationen R 1, R 2 2. Führe Selektionen mit den Bedingungen B 1, B 2 durch. 3. Projiziere die Ergebnis-Tupel auf die erforderlichen Attribute A 1, A 2 LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 215

5.3 Grundlagen der Anfrageoptimierung Logische vs. physische Anfrageoptimierung Optimierungstechniken, die den Auswertungsplan umbauen (d.h. die Reihenfolge der Operatoren verändern), werden als logische Anfrageoptimierung bezeichnet. Unter physischer Anfrageoptimierung versteht man z.b. die Auswahl einer geeigneten Auswertungsstrategie für die Join-Operation oder die Entscheidung, ob für eine Selektionsoperation ein Index verwendet wird oder nicht und wenn ja, welcher (bei unterschiedlichen Alternativen). Es handelt sich also um die Auswahl eines geeigneten Algorithmus für jede Operation im Auswertungsplan. LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 216

5.3 Grundlagen der Anfrageoptimierung Regel- vs. kostenbasierte Anfrageoptimierung Es gibt zahlreiche Regeln (Heuristiken), um die Reihenfolge der Operatoren im Auswertungsplan zu modifizieren und so eine Performanz-Verbesserung zu erreichen, z.b.: Push Selection: Führe Selektionen möglichst frühzeitig (vor Joins) aus Elimination leerer Teilbäume Erkennen gemeinsamer Teilbäume Optimierer, die sich ausschließlich nach diesen starren Regeln richten, nennt man regelbasierte oder auch algebraische Optimierer. LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 217

5.3 Grundlagen der Anfrageoptimierung Regel-/kostenbasierte Optimierung (cont.) Optimierer, die zusätzlich zu den starren Regeln die voraussichtliche Performanz der Auswertungspläne ermitteln und den leistungsfähigsten Plan auswählen, werden als kostenbasierte oder auch (irreführend) nicht-algebraische Optimierer bezeichnet. Die Vorgehensweise kostenbasierter Anfrageoptimierer ist meist folgende: Generiere einen initialen Plan (z.b. Standardauswertungsplan) Schätze die bei der Auswertung entstehenden Kosten Modifiziere den aktuellen Plan gemäß vorgegebener Heuristiken Wiederhole die Schritte 2 und 3 bis ein Stop-Kriterium erreicht ist Gib den besten erhaltenen Plan aus LMU München Skript zur Vorlesung: Datenbanksysteme II SoSe 2008 218