Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanken II SQL - Ausführungspläne Matthias Jauernig (03INB), Michael Lahl (03IND)"—  Präsentation transkript:

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

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

3 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, Ist die Umwandlung einer SQL Query in eine für das DBMS ausführbare Form, Beschreibt die Schritte zur Ausführung einer SQL Query, Beschreibt die Schritte zur Ausführung einer SQL Query, gibt DBMS eine Abarbeitungsfolge für das vom Benutzer eingegebene SQL Statement vor gibt DBMS eine Abarbeitungsfolge für das vom Benutzer eingegebene SQL Statement vor

4 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, 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, Laufzeit und Antwortzeit eines SQL Statements wesentlich vom Ausführungsplan bestimmt, Ziel: möglichst kostengünstiger Ausführungsplan, Ziel: möglichst kostengünstiger Ausführungsplan, Optimierung von SQL–Statements durch DBMS Optimizer oder manuell durch Anwender möglich, 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. Interpretation von Ausführungsplänen versetzt Anwender in die Lage, Performanceverbesserungen für Anfragen zu erreichen.

5 Interne Umwandlung Query Rewrite Query Rewrite SQL–Statement intern in prozedurale Form umwandeln, d.h. für SQL–Befehle werden die Operatoren der relationalen Algebra eingesetzt 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 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, …) Zur Abarbeitung des Baums müssen konkrete Implementierungstechniken angewendet werden (z.B. Nested Loop Join, Index Scan, …)

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

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

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

9 Der DBMS-Optimizer (2) 1. 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.

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

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

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

13 EXPLAIN PLAN – Befehl (2)

14 AUTOTRACE – Funktion (1) Ausführungsplan sowie Statistiken werden in lesbarer Form an die Resultatmenge der SQL–Anweisung angehangen 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; 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 Nachteil: SQL–Query wird immer erst ausgeführt, daher hoher Zeitaufwand bei mehrfacher Nutzung der Query

15 AUTOTRACE – Funktion (2)

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

17 SQL – Analyze (2)

18 Eigenschaften (1) TopSQL Funktionalität (suche nach SQL-Anweisung, welche die meisten Ressourcen benötigen) 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 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 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 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 Ü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 Präsentiert relevante Objekteigenschaften, um Probleme zu erkennen / zu beheben und so die Performance der Anweisung zu beeinflussen

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

20 Interpretation gelesen wird ein Ausführungsplan von rechts nach links (im Operatorbaum gesprochen von den Blättern zur Wurzel) 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 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 Bericht von SQL - Analyze

21 Optimieren (1) Optimierung manuell setzen mittels alter session set optimizer_goal: 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/…)

22 Beispiel (1)

23 Beispiel (2)

24 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 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 bei großen kostenaufwendigeren Querys ist dies eine enorme Performancesteigerung

25 ENDE Noch Fragen???


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

Ähnliche Präsentationen


Google-Anzeigen