SQL-Anfragen: Optimierung für parallele Bearbeitung

Overview

Immer komplexere Anwendungen stellen steigende
Leistungsanforderungen an relationale Datenbanksysteme. Um diese zu erf}llen, ist eine Parallelisierung der
Anfragebearbeitung erforderlich. Als Beitrag hierzu wird ein
Verfahren zur ]bersetzung von Anwenderanfragen, die in ...

See more details below
Paperback
$61.27
BN.com price
(Save 12%)$69.95 List Price
Other sellers (Paperback)
  • All (5) from $48.26   
  • New (5) from $48.26   
Sending request ...

Overview

Immer komplexere Anwendungen stellen steigende
Leistungsanforderungen an relationale Datenbanksysteme. Um diese zu erf}llen, ist eine Parallelisierung der
Anfragebearbeitung erforderlich. Als Beitrag hierzu wird ein
Verfahren zur ]bersetzung von Anwenderanfragen, die in der
Standard-Sprache SQL formuliert sind, in effiziente parallele Bearbeitungspl{ne vorgestellt. Dabei wird die
Technik der regelbasierten Optimierung zugrundegelegt. Von generellem Nutzen f}r die korrekte und effiziente
Bearbeitung von SQL-Anfragen ist die Integration bekannter
Optimierungstechniken auf der Basis einer erweiterten relationalen Algebra. Mit einer systematischen und kompaktenBeschreibung paralleler Bearbeitungspl{ne wird dar}ber hinaus ein Beitrag zum Verst{ndnis der
Parallelisierbarkeit komplexer relationaler Anfragen geleistet.

Read More Show Less

Product Details

  • ISBN-13: 9783540542520
  • Publisher: Springer Berlin Heidelberg
  • Publication date: 1/7/1992
  • Language: German
  • Series: FZI-Berichte Informatik Series
  • Edition number: 1
  • Pages: 245
  • Product dimensions: 6.14 (w) x 9.21 (h) x 0.55 (d)

Table of Contents

1 Einleitung.- 1.1 Einführung des Optimierungsproblems.- 1.1.1 Anfragen.- 1.1.2 Parallele Anfragebearbeitung.- 1.1.3 Optimierungsziel.- 1.2 Techniken der Anfrageoptimierung.- 1.2.1 Komplexitätsaspekte.- 1.2.2 Regelbasierte Optimierung.- 1.2.3 Anfragedarstellung.- 1.2.4 Transformationsregeln.- 1.2.5 Suchraum und Suchstrategie.- 1.2.6 Kostenbewertung.- 1.3 Kernprobleme der Arbeit.- 1.4 Vorgehensweise.- 1.5 Abgrenzung gegenüber anderen Problemstellungen.- 2 Grundlagen und Literaturüberblick.- 2.1 Relationale Anfragesprachen.- 2.1.1 Relationales Datenmodell.- 2.1.2 Relationale Algebra.- 2.1.3 Relationaler Kalkül.- 2.1.4 Erweiterung um Aggregatfunktionen.- 2.1.5 SQL.- 2.2 Parallele Anfragebearbeitung.- 2.2.1 Klassifikation von Systemumgebungen.- 2.2.2 Datenverteilung.- 2.2.3 Bearbeitungsmethoden.- 2.2.3.1 Zugriff auf eine Basisrelation.- 2.2.3.2 Verbund zweier Relationen (Join).- 2.2.3.3 Zusammenfassung.- 2.2.4 Bearbeitungsplan.- 2.2.4.1 Datenflußprogramm.- 2.2.4.2 Parallelisierung.- 2.2.4.3 Zuordnungsentscheidungen.- 2.3 Anfragetransformation.- 2.3.1 Transformation in der Algebra.- 2.3.2 Transformation im Kalkül.- 2.3.3 Transformation vom Kalkül in die Algebra.- 2.3.4 Transformation und Übersetzung von SQL-Anfragen.- 2.4 Parallelisierung.- 2.4.1 Ansätze zur Parallelisierung während der Optimierung.- 2.4.2 Theorie der Ablaufplanung.- 2.4.2.1 Problemstellung.- 2.4.2.2 Konstruktion von Ablaufplänen minimaler Länge.- 3 Grundkonzept des Optimierers.- 3.1 Lösungsansatz.- 3.1.1 Regelbasierte Optimierung.- 3.1.2 Anforderungen an Anfragerepräsentation und Transformationsregeln.- 3.1.3 Konkretisierung der Vorgehensweise.- 3.1.4 Präzisierung der Optimierungsphasen.- 3.2 Anfragerepräsentation.- 3.2.1 Funktionale Darstellungsform.- 3.2.2 Erweiterte relationale Algebra.- 3.2.3 Bearbeitungspläne.- 3.3 Anfragetransformation und Generierung algebraischer Ausdrücke.- 3.4 Generierung paralleler Bearbeitungspläne.- 3.4.1 Transformationsregeln.- 3.4.2 Parallefisierungsstrategien.- 4 Erweiterte relationale Algebra und SQL.- 4.1 Spezifikation der erweiterten relationalen Algebra.- 4.1.1 Definition der Werte und Typen.- 4.1.2 Definition der Grundfunktionen.- 4.1.2.1 Komposition von Funktionen.- 4.1.2.2 Funktionen auf atomaren Datentypen.- 4.1.2.3 Tupelfunktionen.- 4.1.2.4 Mengenfunktionen.- 4.1.3 Relationale Operatoren.- 4.1.4 Ausdrücke.- 4.1.5 Weitere Schreibweisen.- 4.1.5.1 Kompakte Darstellung von Tupelkonstruktoren.- 4.1.5.2 Kompakte Darstellung von Prädikaten.- 4.1.5.3 Ableitbare relationale Operatoren.- 4.1.6 Einordnung der bisherigen Darstellungsformen.- 4.2 Die Anfragesprache SQL.- 4.2.1 Datenmodell.- 4.2.2 Syntax.- 4.2.3 Semantik: Übersetzung in die erweiterte relationale Algebra.- 4.2.3.1 Terme.- 4.2.3.2 Prädikate.- 4.2.3.3 Anfragen.- 4.2.3.4 Unteranfragen.- 4.3 Beispiele für die Übersetzung von SQL-Anfragen.- 5 Grundlagen der Anfragetransformation.- 5.1 Überblick.- 5.2 Prädikat-Transformation.- 5.3 Gruppierende Abbildungen.- 5.3.1 Definition.- 5.3.2 Konstruktion.- 5.4 Ersetzung nicht geschlossener Ausdrücke.- 5.4.1 Korrekte Ersetzung.- 5.4.2 Verlustfreie Ersetzung.- 5.4.3 Auflösung von Unteranfrage-Prädikaten.- 5.4.3.1 Korrekte Auflösung einer Selektion.- 5.4.3.2 Verbesserungsmöglichkeiten.- 5.4.3.3 Korrekte Auflösung einer Outer-Selektion.- 5.5 Algebraische Transformationsregeln.- 5.5.1 Distributiv- und Kommutativgesetze.- 5.5.2 Einsparung von Joins.- 5.6 Zusammenfassung.- 6 Anfragetransformation und Generierung algebraischer Ausdrücke.- 6.1 Überblick.- 6.2 Standardisierung.- 6.2.1 Prädikat-Transformation.- 6.2.2 Auflösung von Existenzquantoren.- 6.2.3 Auflösung von Allquantoren.- 6.2.4 Auflösung von Aggregatfunktionen.- 6.2.5 Ergebnis der Standardisierung.- 6.3 Verbesserung algebraischer Ausdrücke.- 6.3.1 Durchschieben der Projektion.- 6.3.2 Einsparung von Joins.- 6.4 Beispiele für Standardisierung und Verbesserung.- 6.5 Aufzählung algebraischer Ausdrücke.- 6.5.1 Zielsetzung.- 6.5.2 Plazierung und Integration von Auflösungen.- 6.5.3 Join-Reihenfolge.- 6.5.4 Ergebnis der Aufzählung.- 7 Implementierung relationaler Operatoren.- 7.1 Grundlagen.- 7.1.1 Tupellisten.- 7.1.2 Korrekte Implementierung relationaler Operatoren.- 7.1.3 Eigenschaften von Tupellisten.- 7.2 Zugriffspfade.- 7.2.1 Zugriff auf Basisrelationen.- 7.2.1.1 Physisches Datenbankschema.- 7.2.1.2 Sequentieller Zugriff.- 7.2.1.3 Selektiver Zugriff.- 7.2.2 Zugriff auf Tupellisten.- 7.2.3 Zugriff auf atomare Werte und Tupel.- 7.3 Sequentielle Bearbeitung relationaler Operatoren.- 7.3.1 Konkatenation.- 7.3.2 Filterung.- 7.3.3 Join.- 7.3.4 Aggregierung.- 7.3.5 Division.- 7.3.6 Ergebnisbildung.- 7.3.7 Beispiel für eine sequentielle Implementierung.- 7.4 Einsatz von Indizes.- 7.5 Ausnutzung einer Sortierung.- 7.5.1 Merge-Join.- 7.5.2 Aggregierung.- 7.5.3 Beispiel für die Ausnutzung einer Sortierung.- 7.6 Verwendung von Hashing.- 7.6.1 Hashing-Join.- 7.6.2 Aggregierung.- 7.6.3 Beispiel für den Einsatz von Hashing.- 7.7 Zerlegung von Operationen in Phasen.- 7.8 Zusammenfassung.- 8 Grundlagen der Parallelisierung.- 8.1 Überblick.- 8.2 Datenflußprogramm.- 8.2.1 Struktur.- 8.2.2 Konstruktion.- 8.3 Meta-Datenflußprogramm.- 8.3.1 Struktur.- 8.3.2 Konstruktion des Meta-Datenflußprogramms: Node Splitting.- 8.3.2.1 Zugriff auf eine Basisrelation.- 8.3.2.2 Filterung.- 8.3.2.3 Existenzquantor.- 8.3.2.4 Join und Semijoin.- 8.3.2.5 Merge-Join.- 8.3.2.6 Aggregierung.- 8.3.3 Konstruktion des Meta-Datenflußprogramms: Pipelining.- 8.3.4 Beispiel für die Konstruktion eines Meta-Datenflußprogramms.- 8.4 Transformationen auf dem Meta-Datenflußprogramm.- 8.4.1 Node Splitting.- 8.4.2 Pipelining.- 8.4.3 Beispiel für den Einsatz von Node Splitting und Pipelining.- 8.5 Abbildung des Meta-Datenflußprogramms auf ein Datenflußprogramm.- 8.5.1 Generierung der Teilknoten.- 8.5.2 Vorliegende Zerlegung der Operanden.- 8.5.3 Partitionierung und Anpassung des Operandenzugriffs.- 8.5.4 Beispiel für die Abbildung auf ein Datenflußprogramm.- 8.5.5 Einsparung überflüssiger Knoten.- 8.6 Generierung eines parallelen Bearbeitungsplans.- 8.7 Zusammenfassung.- 9 Kostenmodell.- 9.1 Zielsetzung und Vorgehensweise.- 9.2 Kostenarten.- 9.3 Kostenanteile.- 9.4 Kostenfaktoren.- 9.5 Kostenfunktionen.- 9.5.1 Kosten der Zugriffsoperationen.- 9.5.2 Kosten der Bearbeitungsoperationen.- 9.5.3 Kosten der Ergebnisübermittlung.- 9.6 Bewertung eines parallelen Bearbeitungsplans.- 9.6.1 Definition und Kennzahlen eines Parallelitätsprofils.- 9.6.2 Konstruktion eines Parallelitätsprofils.- 9.6.3 Bestimmung der Bearbeitungskosten und der Bearbeitungszeit.- 9.7 Bewertung eines Meta-Datenflußprogramms.- 9.7.1 Ausgangspunkt.- 9.7.2 Kosten der Teilknoten eines Metaknotens.- 9.7.3 Initiale Verteilung von Teilknoten auf Prozessoren.- 9.7.4 Konstruktion von Pipeboxen.- 9.7.5 Zusammensetzen der Pipeboxen zu einem Parallelitätsprofil.- 9.7.6 Bestimmung der Bearbeitungskosten und der Bearbeitungszeit.- 9.7.7 Neubewertung nach einem Parallelisierungsschritt.- 9.7.8 Beispiel für die Bewertung anhand des Parallelitätsprofils.- 10 Parallelisierungsstrategien.- 10.1 Aufgaben einer Parallelisierungsstrategie.- 10.2 Heuristiken zur Erzeugung eines Meta-Datenflußprogramms.- 10.2.1 Konstruktion des Meta-Datenflußprogramms.- 10.2.1.1 Auswahl des Parallelisierungsschemas beim Join.- 10.2.1.2 Auswahl des Parallelisierungsschemas bei der Aggregierung.- 10.2.1.3 Beispiel.- 10.2.2 Phasenzerlegung: Vermeidung von Hauptspeicherüberlauf.- 10.2.3 Node Splitting und Pipelining zur Vermeidung von Auslagerungen.- 10.2.4 Kopplung der Parallelisierung aufeinanderfolgender Knoten.- 10.3 Heuristiken auf der Basis des Parallelitätsprofils.- 10.3.1 Betrachtung zeitkritischer Meta-Pipes.- 10.3.2 Auswahl von Meta-Pipes für den Einsatz von Node Splitting.- 10.3.3 Parallelisierung einer Meta-Pipe durch Node Splitting.- 10.3.4 Auswahl von Meta-Pipes für den Einsatz von Pipelining.- 10.4 Heuristiken für die Zuordnung.- 10.5 Zusammenfassung.- 11 Zusammenfassung und Ausblick.- 11.1 Hauptergebnisse der Arbeit.- 11.2 Weiterführende Arbeiten.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)