SQL - Ausführungspläne Matthias Jauernig (03INB), Michael Lahl (03IND)

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

6. Termin Teil D: Was ist eine Datenbank
Christian Scheideler SS 2009
Datenbanken Einführung.
Objekt – Relationales – Modell Tomasz Makowski IN
MS Office-Paket: Access
Algorithmen und Komplexität
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Anwendung und Visual Basic
Informierte Suche.
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
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.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Eine objektorientierte Einführung in den Umgang mit Datenbanken
Übung Datenbanksysteme SQL-Anfragen (2)
Algorithmen und Komplexität
Einführung Dateisystem <-> Datenbanksystem
Minimum Spanning Tree: MST
Einführung und Überblick
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Duo- und Quad Prozessor-Architektur
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Muster zum Erstellen einer Abfrage mit der interaktiven Datenbank
Sistema GeoDAT, S.L. GeoBIS, GeoEIS, GIS-Komponente … 2005.
EXCEL PROFESSIONAL KURS
EXPLAIN PLAN - Erste Schritte April 2004EXPLAIN PLAN2 Was fehlt noch? Konkretes Beispiel für einen Plan.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #4 Anfragebearbeitung (Teil 2)
Die Formulare Access bietet zwei Methoden für die Einführung der Daten: das Datenblatt und das Formular. Man benutzt ein Formular für: Eingeben, Ansehen.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Erzeugen von Karten, Layern und Legenden
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Adaption von K-Means Algorithmen an Datenbanken
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
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)
Allgemeines zu Datenbanken
Lernmodul Einführung Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Nutzungsbedingungen:
Datenbanksysteme für hörer anderer Fachrichtungen
Freiwillige Feuerwehr der Stadt Perg
XML und Datenbanken © 2006 Markus Röder
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
PHP: Operatoren und Kontrollstrukturen
Das Traveling Salesman Problem (TSP)
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Algebraische Optimierung (1)
Einführung Dateisystem <-> Datenbanksystem
ArcView als SDE - Client SDE Client inklusive! ArcViewGIS: ArcView GIS: Michael Jacobi ESRI GmbH ESRI EUROPEAN USER CONFERENCE.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Datenbank System (DBS) - Warum?
EXPLAIN PLAN - Erste Schritte -. EXPLAIN PLAN speichert die Abfolge sämtlicher Operationen zur Ausführung eines Statements: – referenzierte Tabellen –
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Der A*-Algorithmus.
12. November 2001 Seminar Geoinformation Folie 1 Inhalt Einführung Bearbeitung raumbezogener Anfragen Ausblick Seminar Geoinformation Themenblock: „Implementierung.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
TOAD® IM TURBO-MODUS Zusatzmodul-Übersicht. INHALT  Wie vielseitig hätten Sie's denn gern?  Formatter Plus™  Debugging-Modul  Xpert Tuning-Modul 
Indexierung Oracle: indexes Indexierung.
Oracle Statistiken im HORIZON-Umfeld
 Präsentation transkript:

SQL - Ausführungspläne Matthias Jauernig (03INB), Michael Lahl (03IND) Datenbanken II SQL - Ausführungspläne Matthias Jauernig (03INB), Michael Lahl (03IND)

Inhalt Begriff der Ausführungspläne Der DBMS-Optimizer Ausführungspläne in Oracle: SQL+: EXPLAIN PLAN, AUTOTRACE SQL Analyze Beispiel

Was sind Ausführungspläne? (1) Ausführungsplan (engl.: Execution Plan): Ist die Umwandlung einer SQL Query in eine für das DBMS ausführbare Form, Beschreibt die Schritte zur Ausführung einer SQL Query, gibt DBMS eine Abarbeitungsfolge für das vom Benutzer eingegebene SQL Statement vor

Was sind Ausführungspläne? (2) Es kann viele Ausführungspläne geben, die dasselbe SQL Statement erfüllen, z.B. durch Variieren der Reihenfolge, in der algebraische Operationen ausgeführt werden, Laufzeit und Antwortzeit eines SQL Statements wesentlich vom Ausführungsplan bestimmt, Ziel: möglichst kostengünstiger Ausführungsplan, Optimierung von SQL–Statements durch DBMS Optimizer oder manuell durch Anwender möglich, Interpretation von Ausführungsplänen versetzt Anwender in die Lage, Performanceverbesserungen für Anfragen zu erreichen.

Interne Umwandlung „Query Rewrite“ SQL–Statement intern in prozedurale Form umwandeln, d.h. für SQL–Befehle werden die Operatoren der relationalen Algebra eingesetzt Ausführungsplan = Operatorbaum – Knoten stellen Operatoren zur Verknüpfung von Zwischenergebnissen dar Zur Abarbeitung des Baums müssen konkrete Implementierungstechniken angewendet werden (z.B. Nested Loop Join, Index Scan, …)

Der DBMS-Optimizer (1) Generiert eine Menge von möglichen Ausführungsplänen, wählt den kostengünstigsten aus, Berechnet für jeden Plan einen „Kostenvoranschlag“ Unterscheidung zwischen: RBO (rule-based optimizer) CBO (cost-based optimizer)

RBO – rule-based optimizer Ältere Form des Optimierers Ausführungsplan wird anhand eines festen Regelwerks, Prioritäten zwischen Operationen und Informationen des Data Dictionary (Indexe, …) erstellt Nachteile: Keine Auswertung von Statistiken, begrenzter Regelsatz

CBO – cost-based optimizer Verwendet Statistiken zur Schätzung der Kosten (I/O, CPU) eines Ausführungsplans, Statistiken beinhalten z.B. Informationen zu Datenverteilung / Speicherung von Tabellen und Indexes Vorteil: Genauere Kosten als bei RBO Nachteil: Statistiken regelmäßig zu erstellen bzw. aktualisieren

Der DBMS-Optimizer (2) Optimizer spannt zunächst Suchraum von möglichen Plänen auf  Beschränkung sinnvoll, z.B. breiter Einsatz von: Heuristiken: (=Daumenregeln) Selektionen so früh wie möglich, Basisoperationen als 1 Berechnungsschritt, Nur Berechnungen ausführen, die Beitrag zu Gesamtergebnis liefern.

Der DBMS-Optimizer (3) Optimizer wählt dann Plan mit minimal geschätzten Gesamtkosten aus  Suchraum wird durchlaufen erschöpfend: NP-Problem, Algorithmen: Greedy, dyn. Programmierung, Branch&Bound partiell: keine opt. Lösung garantiert, Verfahren: simulated annealing, hill climbing, genetische Algorithmen

Ausführungspläne in Oracle mehrere Möglichkeiten zur Erzeugung von Ausführungsplänen stehen zur Verfügung: SQL*Plus (textbasiert) EXPLAIN PLAN – Befehl AUTOTRACE – Funktionalität Programm SQL–Analyze (nur in der Enterprise Version enthalten) -> Vereinigung von beiden textbasierten Varianten

EXPLAIN PLAN – Befehl (1) Ausführung in der SQL*Plus Konsole Ausführungsplan der SQL – Anweisung wird in plan_table gespeichert (muss erst angelegt werden) Anweisung wird nicht ausgeführt! Informationen können nach Ausführung ausgewertet werden Nachteil: manuelle Extrahierung der Informationen EXPLAIN PLAN SET statement_id = ‘<Bezeichner>‘ FOR <SQL – Statement>

EXPLAIN PLAN – Befehl (2)

AUTOTRACE – Funktion (1) Ausführungsplan sowie Statistiken werden in lesbarer Form an die Resultatmenge der SQL–Anweisung angehangen Nutzung durch Einschalten der Funktionalität mittels des folgenden Befehls: SET AUTOTRACE ON; Nachteil: SQL–Query wird immer erst ausgeführt, daher hoher Zeitaufwand bei mehrfacher Nutzung der Query

AUTOTRACE – Funktion (2)

SQL – Analyze (1) grafische Darstellung von Ausführungsplänen spezielle Wizards und Assistenten stehen zur Analyse von einzelnen SQL–Anweisungen zur Verfügung Auswertungen werden in grafischer und relativ übersichtlicher Form dargestellt (z.B. mittels Diagrammen, Tabellen)

SQL – Analyze (2)

Eigenschaften (1) TopSQL Funktionalität (suche nach SQL-Anweisung, welche die meisten Ressourcen benötigen) Zugriff auf eine SQL-Historie, in der Informationen über vergangene Anweisungen gespeichert wurden Ausführen von SQL-Anweisungen mit unterschiedlichen Optimierungen, Angabe von Ausführungsplänen sowie Statistiken dazu grafische Anzeige von Ausführungen und Erklärungen zu den einzelnen Schritten Überprüfung von SQL-Anweisungen auf syntaktische Korrektheit, zeigen von möglichen Fehlerquellen Präsentiert relevante Objekteigenschaften, um Probleme zu erkennen / zu beheben und so die Performance der Anweisung zu beeinflussen

Eigenschaften (2) Zugang zu Initialisierungsparametern, haben direkten Einfluss auf die Performance Hinzufügen von Optimizer-Hints (s. Vortrag Gruppe 8) mit Hilfe des Hint Wizards Speicherung von Ausführungsplänen und Statistiken von SQL-Anweisungen im Repository Vorschläge zu Indexnutzung um die Performance zu erhöhen Virtuelle Indexerstellung (Testen von Indexen ohne diese zu erstellen)

Interpretation gelesen wird ein Ausführungsplan von rechts nach links (im Operatorbaum gesprochen von den Blättern zur Wurzel) d.h. es werden einfache Operationen zuerst ausgeführt und die resultierenden Mengen mit mächtigeren Operationen verknüpft  daraus entsteht dann die Resultatmenge der SQL Query  Bericht von SQL - Analyze

Optimieren (1) Optimierung manuell setzen mittels alter session set optimizer_goal: optimizer_goal=rule: Einsatz von RBO (nicht mehr in 10g – hier nur noch CBO, Erstellung von Statistiken on-the-fly) optimizer_goal=choose: autom. Wahl von RBO bzw. CBO (wenn Statistiken verfügbar) optimizer_goal=all_rows: Optimierung bzgl. Bereitstellung des Gesamtergebnisses optimizer_goal=first_rows: Optimierung bzgl. Bereitstellung des ersten Tupels (z.B. für Statistiken – OLAP/Data Warehouses/…)

Beispiel (1)

Beispiel (2)

Beispiel (3) Durch Setzen des Indexes auf die Spalte F_ABT_ID lässt sich die Kosten bei Ausführung der SQL–Query um 44% verringern bei großen kostenaufwendigeren Querys ist dies eine enorme Performancesteigerung

ENDE Noch Fragen???