Optimierung von Anfragen an verteilte Datenbanksysteme

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Partitionierungstechniken in Datenbanksystemen
Leistung.
Proof-Planning. Übersicht Einleitung Proof-Planning Bridge-Taktiken Repräsentation des Gegenspiels Planungsalgorithmus Suchen mit Histories.
Datenbanken Einführung.
Daten fließen lassen XML in Microsoft Office 2003 Lorenz Goebel Frank Fischer
Projektumfeld Gesellschaftliche Strömungen Strukturen/ Gliederung
Entity-Relationship-Ansatz
Kapitel 3: Das Relationenmodell
Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof.
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
QBE in MS Access formulieren
AGXIS – Ein Konzept für eine generische Schnittstellenbeschreibung Dr.-Ing. Ulrich Hussels, RISA GmbH 07. Juni 2005 Workshop Umweltdatenbanken 2005.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Genetische Algorithmen
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Vortrag im Rahmen des Seminars
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Prof. Dr. T. Kudraß1 Query-Optimierung. Prof. Dr. T. Kudraß2 Einführung Anfrageoptimierung Von der Anfrage (WAS?) zur Auswertung (WIE?) –Ziel: kostengünstiger.
Übung Datenbanksysteme SQL-Anfragen (2)
Seminar: Architekturbeschreibungssprachen
Erzeugung von Fahrgemeinschaftsplänen für Lehrer
Access 2000 Datenbanken.
Seminar: Verteilte Datenbanken
Einführung Dateisystem <-> Datenbanksystem
Was sind Histogramme? (1)
Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 10 Kapitel 10 Anfragebearbeitung.
Datenbankentwurfsprozess
Aufgabe Aufgabe: Einflussfaktoren: ?
Computergrafik Begriff: Was ist Computergrafik?
Analyse eines Handballspielzuges
SQL - Ausführungspläne Matthias Jauernig (03INB), Michael Lahl (03IND)
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Konzeption und Realisierung von DSS
... und alles was dazugehört
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Die Grundterminologie
Überblick über die Datenbankproblematik
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #3 Relationale Anfragesprachen.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2013/14 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
Replikation und Synchronisation
DI (FH) DI Roland J. Graf MSc (GIS) U N I V E R S I T Ä T S L E H R G A N G Geographical Information Science & Systems UNIGIS.
verstehen planen bearbeiten
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Interne Qualitative Dienstleistungsanalyse
Algebraische Optimierung (1)
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Datenbank System (DBS) - Warum?
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Vorlesung Datenbanksysteme vom : Wiederholung Anfragebearbeitung  Logische Optimierung.
Seminar zu Datenbanksystemen Sommersemester 2005 Universität Hannover B.Sc. Markus Spehling Vortrag: Based on: Top-k Selection.
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
WS 2015/16 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
Indexierung Oracle: indexes Indexierung.
 Präsentation transkript:

Optimierung von Anfragen an verteilte Datenbanksysteme Frank Steffen Sebastian Muhl Andreas Geißler

Warum Verteilung der DBS Dezentralisierung Verfügbarkeit, Gesamtdurchsatz, Lastverteilung, Kostenoptimierung Integration Single-System-Image, Konsistenzverbesserung Redundanz

Besonderheiten bei der Anfragebearbeitung lokale und globale Optimierung Beachtung von Parallelität und Lastverteilung Optimierungsaspekt: Antwortzeit besonders kritische und kostenintensive Operation: Join Aufgaben der globalen Ebene werden in Komponentensystemen gelöst

Anfragebearbeitung wegen Heterogenität der Komponentensysteme (KS) Aufwand bei der Bearbeitung einer globalen Anfrage größer als Anfragebearbeitung innerhalb eines DBS Anfragebearbeitung wird in verschiedene Phasen zerlegt

Anfragebearbeitung föderiertes DBS erhält globale Anfrage (GQ) GQ wird in Teilanfragen zerlegt (SQ1, ..., SQn) jede SQ liefert Daten, die zur Beantwortung von GQ benötigt werden hier Festlegung der Verknüpfungen der SQ (Erzeugung von Postprocessinganfragen [PQ]) PQ sind festgelegte globale Operationen und redundant gespeicherte Daten behandelt Kontrolle über redundante Daten, so dass sie nicht mehrfach in Endergebnis eingehen

Anfragebearbeitung Übersetzen der Teilanfragen in die Anfragesprachen der jeweiligen KS: globale Anfragen müssen in Teilanfragen der KS übersetzt werden nicht immer möglich dabei ergibt sich ein Problem: Anfragesprache des KS nicht so ausdrucksmächtig wie die der Teilanfragesprache Anfragesprache läßt sich nicht in äquivalente Sprache des KS übersetzen

Übersetzen der Teilanfragen Lösung: globale Teilanfrage in mehrere Teilanfragen teilen. Ergebnisse danach wieder zusammenfügen globale in lokale Anfragen übersetzen (Lösung entspricht nicht dem vollständigem Ergebnis) lokale Anfrage ergibt Ergebnis, das das globale beinhaltet. Durch Postprocessing muss noch sichergestellt werden, dass nur der Teil weiterverwendet wird, der für das Gesamtergebnis wichtig ist

Übersetzen der Teilanfragen Problem: viele DBS-Sprachen besitzen keine deklarative Sprache Lösung: lokale Anwendungsprogramme, die Teilanfragen realisieren können vordefinierte Anwendungsprogramme, die allgemeine Anfragen realisieren können Nachbearbeitung durch Postprocessing auf globaler Ebene erforderlich

lokale Bearbeitung der Teilanfragen der KS lokale Anfragen werden in dem KS bearbeitet wegen Autonomie der KS kann diese lokale Anfragebearbeitung und -optimierung nicht von globaler Ebene beeinflußt werden. lokale Optimierung der lokalen Anfragen unabhängig von der globalen Optimierung. jedes lokale Ergebnis wird an die globale Ebene zurückgegeben

Zurücksetzen der lokalen Anfrageergebnisse in das globale Datenmodell transformieren eines lokalen Ergebnisses in ein Ergebnis eines globalen Datenmodells wenn nicht eindeutig möglich, bereits bei Übersetzung einer globalen in lokale Teilanfrage festlegen, wie das Ergebnis später transformiert werden soll

Zusammensetzen der globalen Antwort aus den lokalen Antworten mit Postprocessing nur nötig, wenn Postprocessing Anfragen festgelegt wurden Umwandlung der Ergebnisse der globalen Teilanfragen in globale Anfragen Zusammensetzung in der Zerlegung festgeschrieben

Optimierung Nutzung von Heuristiken für eine sinnvolle Abschätzung der Ausführungszeit Probleme, die auf der Autonomie und Heterogenität basieren Optimierungsverfahren für verteilte DBS sind nicht kompatibel auf föderierte DBS Grund: Voraussetzungen sind nötig, die föderierte Systeme nicht haben

Ziele der Optimierung effizienter Ausführungsplan in kurzer Zeit wenig Seitenzugriffe bei Anfragebearbeitung in allen Operationen so wenig wie möglich Seiten (Tupel) berücksichtigen Selektionen so früh wie möglich

Ziele der Optimierung Basisoperationen zusammenfassen und ohne Zwischenspeicherung realisieren redundante Operationen, Idempotenzen oder leere Zwischenrelationen entfernen Zusammenfassen gleicher Teilausdrücke: Wiederverwendung von Zwischenergebnissen

1. Annahme für Optimierung in verteilten DBS keine Dateninkonsistenz innerhalb des Gesamtdatenbestandes (in föderierten Systemen unrealistisch) Komponentensysteme vor Eintritt in Föderation unabhängig Inkonsistenzen bezüglich Daten, die in mehreren KS gespeichert werden Inkonsistenzen nicht oder nur teilweise erkannt und behoben Inkonsistenzen schwer zu entfernen, weil die jeweiligen lokalen Anwendungen ungünstig beeinflußt werden

2. Annahme für Optimierung in verteilten DBS Anfrageverarbeitung und -optimierung in verteilten DBS setzt direkte Austauschbarkeit der Daten in einzelnen DBS voraus nur in der Import/Export-Schema-Architektur möglich direkte Verbindungen schränken Autonimie der KS ein

3. Annahme für Optimierung in verteilten DBS meist sind Charkateristiken der lokalen Systeme bekannt (auch statistische Infos) mit diesen Infos kann globaler Optimierer möglichst günstigen Ausführungsplan erzeugen globalem Optimierer stehen in föderierten Systemen diese Infos nicht zur Verfügung (wegen Autonomie) für bestehende DBS gibt es keine Möglichkeit über eine von außen zugängliche Schnittstelle diese Infos abzurufen

Optimierer Unterscheidung in: Lokale Optimierer Globale Optimierer

Lokaler Optimierer entscheidet über Nutzung von Indexstrukturen und Auswahl über Join-Strategie CPU- und E/A-Kosten (auch für globale Optimierungsentscheidungen zu berücksichtigen)

Globaler Optimierer besitzt keine Infos über lokale Schemaangaben der einzelnen Rechner bestimmt über Ausführungsfolge und Ausführungsorte der Operationen bestimmt die Methode des Datenaustauschs globale Systeme: nur Kommunikationskosten abgeschätzt keine signifikante Einschränkung weil teuere Kommunikation Großteil der Verarbeitungsdauer

Komponenten des Anfrageoptimiers Enumerator: Regeln, um alle Pläne für eine Anfrage aufzuzählen Kostenmodell: bewertet jeden einzelnen Plan Suchstrategie: versucht mit Hilfe des Enumerators, möglichst schnell guten Plan zu finden

Entscheidungen des Optimierers Selektionen, Projektionen, Joinordering Access Path Selection, d.h. welche Indexe sollen verwendet werden Wahl der Joinmethode Zwischenergebnisbehandlung (Pipelining oder Materialisierung)

Entscheidungen des Optimierers Replikatauswahl bei lesenden Anfragen, d.h. welche Kopie einer Partition wird verwendet Site Selection, d.h. wo werden die einzelnen Operationen ausgeführt Einsatz von speziellen verteilten Techniken

Entscheidungshilfe präzise quantitative Abschätzung der Bearbeitungskosten mit entsprechenden Statistiken vornehmen physische Aspekte der Hardwareumgebung vorliegende Speicherstrukturen Zugriffspfade unterschiedliche Implementierungsformen für einzelne Operatoren

Woher bekommt der Optimierer die Daten? wichtiger Bereich: Schemaintegration Abbildungsinformation müssen bestimmt werden (die globalen Schemabestandteile werden den entsprechenden Schema-bestandteilen der lokalen Schemata der KS zuordnet) ohne Abbildungsinformationen ist es nicht möglich, globale Anfragen zu bearbeiten

Woher bekommt der Optimierer die Daten? alternative Quellen für bestimmte Daten, die redundant gespeichert sind, sind vorhanden  alternative Ausführungspläne können generiert werden keine Entscheidung möglich, welcher Weg der günstigere ist

Probleme bei Optimierung KS können unterschiedliche Optimierungsstrategien bei der lokalen Anfragebearbeitung einsetzen in Föderation mit mehreren DBS ist große Heterogenität zu erwarten nicht bekannt, welche Optimierungsstrategien das Komponentensystem verwendet  geeignetes Verfahren gesucht Anfrage an ein DBS, welches Verfahren es verwendet, nicht möglich Testverfahren bestimmt experimentell, wie KS optimiert wird

Fazit der theoretischen Optimierung Je mehr Informationen der globale Optimierer über die Anfrageoptimierer in den KS hat, desto besser kann er globale Ausführungspläne erstellen, in denen die jeweilige lokale Optimierung der KS vorgesehen wird. Anfragen können bei nicht optimierten vom globalen Optimierer so gestaltet werden, dass eine effiziente Ausführung durch das KS möglich ist. In derzeitigen DBS ist nur eine geringe Anfrageoptimierung möglich.

Phasen der Optimierung logische Optimierung algebraische Optimierung physikalische Optimierung kostenbasierte Auswahl

Logische Optimierung heuristische Methoden (algebraische Optimierung, Relationenalgebra + Gruppierung)  SDD-1 exakte Methoden (Tableauoptimierung, Anzahl Verbunde minimieren)

algebraische Optimierung Termersetzung von Termen der Relationenalgebra anhand von Algebraäquivalenzen Äquivalenzen gerichtet als Ersetzungsregeln heuristische Methode: Operationen verschieben, um kleinere Zwischenergbnisse zu erhalten, Redundanzen erkennen

verteilte Anfrageoptimierungsalgorithmen dynamisches Optimierungstiming: verteiltes INGRES statisches Optimierungstiming: SDD-1, R*

Verteiltes INGRES Dynamisches Optimierungstiming Minimierung der Kombination von Antwortzeit und Gesamtzeit Optimierungsfaktoren: Nachrichtengröße, Verarbeitungszeit (E/A- und CPU-Zeit) Nutzt Joins wie bei Anfrageoptimierung der jeweiligen zentralisierten DBMS unterstützt zusätzlich auch Fragmente

Ingres Algorithmus zur Optimierung von Verbund-Ausdrücken Ingres ist eines der ersten kommerziellen relationalen Datenbanksysteme aus den 80er Jahren. Die Optimierung ist dynamisch, d.h. während der Ausführung. Der Optimierer trennt von einer Anfrage zu mehreren Relationen zunächst Anfragen zu einer Relation ab und führt resultierende „1-Variablen-Anfragen“ aus.

Ingres Algorithmus zur Optimierung von Verbund-Ausdrücken Resultate von 1-Variablen-Anfragen können im Hinblick auf folgende Verbunde geeignet abgespeichert werden. Anschließend wird bei der übriggebliebenen n-Variablen-Anfrage eine Variable durch eine Tupelkonstante aus der betreffenden Relation ersetzt (tuple substitution) und weiteres Abtrennen mit anschließender Variablenersetzung probiert.

Beispiel SELECT E.NAME FROM E,G,J WHERE E.ENo=G.ENo AND G.JNo=J.JNo AND JName=„CAD“. Abtrennung erzeugt: SELECT J.JNo INTO JVar FROM J WHERE JName=„CAD“. SELECT E.NAME FROM E,G,JVar WHERE E.ENo=G.ENo AND G.JNo=JVar.JNo. Variablenersetzung E.Name=„Bill“, E.ENo=47 erzeugt: SELECT „Bill“ FROM G,JVar WHERE 47=G.ENo AND G.JNo=JVar.JNo. SELECT G.JNo INTO GVar FROM G WHERE G.ENo=47. SELECT „Bill“ FROM GVar,JVar WHERE GVar.JNo=JVar.JNo. usw.

R* statisches Optimierungstiming Minimierung der Gesamtzeit Optimierungsfaktor: lokale Verarbeitungszeit, Nachrichtengröße, Anzahl von Nachrichten, E/A- und CPU-Kosten Nutzt Joins wie bei Anfrageoptimierung der jeweiligen zentralisierten DBMS

SDD-1 statisches Optimierungstiming Minimierung der Gesamtzeit Optimierungsfaktor: Nachrichtengröße nutzt Semijoins als Anfrageoptimierungs-technik (mehr Infos als Join)

SDD-1 SDD-1 ist einer der ersten Prototypen eines verteilten Datenbanksystems aus den 80er Jahren. Die Anfrageoptimierung beruht auf der Verwendung von Semiverbunden; Kostenmaß sind die Kommunikationskosten. Die Kardinalitäten der beteiligten Relationen werden mittels Semiverbunden reduziert.

SDD-1 Die eigentliche Anfrage wird an einer Site auf den reduzierten Relationen ausgeführt. Kosten und Nutzen eines Semiverbundes R|XAS: cost(R|XAS) = CMsg+ card([A]S) x length(A) x CTrans benefit(R|XAS) = (1 - SFSJ(R,S)) x card(R) x length(R) x CTrans length(R) gibt die Länge eines Tupels in R in Byte an.

Danke Sagen: Frank Steffen Sebastian Muhl Andreas Geißler 