Datenbankausführungsplan: Unterschied zwischen den Versionen

Aus IT-Forensik Wiki
(Die Seite wurde neu angelegt: „„Ein Datenbankausführungsplan ist eine generierte Liste der Schritte, die für das Datenbanksystem die effizienteste Möglichkeit bilden, auf Informationen…“)
 
Keine Bearbeitungszusammenfassung
 
Zeile 5: Zeile 5:
Das Erstellen von Ausführungspläne wird auch als Kompilieren bezeichnet.
Das Erstellen von Ausführungspläne wird auch als Kompilieren bezeichnet.


Der Ausführungsplan gibt beispielsweise einen Aufschluss darüber welche Indizes benutzt werden, in welcher Reihenfolge die Zugriffe auf die verschie-denen Tabellen erfolgen, und welche Algorithmen für Join-, Sortier- und Gruppier-Operationen zum Zuge kommen.
Der Ausführungsplan gibt beispielsweise einen Aufschluss darüber welche Indizes benutzt werden, in welcher Reihenfolge die Zugriffe auf die verschiedenen Tabellen erfolgen, und welche Algorithmen für Join-, Sortier- und Gruppier-Operationen zum Zuge kommen.


Sie werden dazu genutzt, um Abfragen so wirtschaftlich wie nur möglich zu verarbeiten und zu beantworten. Bei der ersten Ausführung einer Abfrage wird diese analysiert. Hierbei werden beispielsweise die aufgerufenen Tabellen herausgefiltert oder es wird ermittelt, wie Ergebnisse vereinigt oder kombiniert werden müssen (Datenbankausführungsplan). Diese Pläne werden in einem Bereich des Arbeitsspeichers abgelegt (Plancache).  
Sie werden dazu genutzt, um Abfragen so wirtschaftlich wie nur möglich zu verarbeiten und zu beantworten. Bei der ersten Ausführung einer Abfrage wird diese analysiert. Hierbei werden beispielsweise die aufgerufenen Tabellen herausgefiltert oder es wird ermittelt, wie Ergebnisse vereinigt oder kombiniert werden müssen (Datenbankausführungsplan). Diese Pläne werden in einem Bereich des Arbeitsspeichers abgelegt (Plancache).  


Vergleicht man dies mit anderen Programmiersprachen ähnelt der Ausfüh-rungsplan dem Bytecode von Scriptsprachen wie z.B. Python.
Vergleicht man dies mit anderen Programmiersprachen ähnelt der Ausführungsplan dem Bytecode von Scriptsprachen wie z.B. Python.


Wird eine SQL-Anweisung ausgeführt, wird zwischen der Optimierungsphase und der eigentlichen Ausführung der Ausführungsplan erstellt.
Wird eine SQL-Anweisung ausgeführt, wird zwischen der Optimierungsphase und der eigentlichen Ausführung der Ausführungsplan erstellt.
Zeile 23: Zeile 23:
Dargestellt sind die einzelnen Aufrufe, ihre Verbindungen zueinander sowie die entsprechend verbrauchte Zeit und deren Kosten.
Dargestellt sind die einzelnen Aufrufe, ihre Verbindungen zueinander sowie die entsprechend verbrauchte Zeit und deren Kosten.


Zusammenfassend werden somit im Datenbankausführungsplan alle verar-beiteten SQL-Anweisungen protokolliert. 
Zusammenfassend werden somit im Datenbankausführungsplan alle verarbeiteten SQL-Anweisungen protokolliert. 





Aktuelle Version vom 3. August 2022, 08:30 Uhr

„Ein Datenbankausführungsplan ist eine generierte Liste der Schritte, die für das Datenbanksystem die effizienteste Möglichkeit bilden, auf Informationen zuzugreifen oder sie zu ändern.“ (vgl. Justin Clarke, SQL Hacking).

Der Ausführungsplan beinhaltet die jeweiligen Schritte, die eine Datenbank beim Abarbeiten einer SQL-Anweisung ausführt. Der Ausführungsplan wird auch execution plan oder explain plan genannt. Das Erstellen von Ausführungspläne wird auch als Kompilieren bezeichnet.

Der Ausführungsplan gibt beispielsweise einen Aufschluss darüber welche Indizes benutzt werden, in welcher Reihenfolge die Zugriffe auf die verschiedenen Tabellen erfolgen, und welche Algorithmen für Join-, Sortier- und Gruppier-Operationen zum Zuge kommen.

Sie werden dazu genutzt, um Abfragen so wirtschaftlich wie nur möglich zu verarbeiten und zu beantworten. Bei der ersten Ausführung einer Abfrage wird diese analysiert. Hierbei werden beispielsweise die aufgerufenen Tabellen herausgefiltert oder es wird ermittelt, wie Ergebnisse vereinigt oder kombiniert werden müssen (Datenbankausführungsplan). Diese Pläne werden in einem Bereich des Arbeitsspeichers abgelegt (Plancache).

Vergleicht man dies mit anderen Programmiersprachen ähnelt der Ausführungsplan dem Bytecode von Scriptsprachen wie z.B. Python.

Wird eine SQL-Anweisung ausgeführt, wird zwischen der Optimierungsphase und der eigentlichen Ausführung der Ausführungsplan erstellt.

Phasen der SQL-Ausfuehrung.png

Weil der Ausführungsplan die Abläufe auf einer ähnlichen Abstraktionsebene darstellt wie SQL, kann man einen Ausführungsplan sehr schnell lesen, durch die einheitliche Formatierung meist schneller als die ursprüngliche SQL-Anweisung.

Beispiel eines Ausfühungsplans: Darstellung eines Ausfuehrungsplans.png

Der in der Grafik obenstehende Select-Befehl wird darunter visualisiert. Dargestellt sind die einzelnen Aufrufe, ihre Verbindungen zueinander sowie die entsprechend verbrauchte Zeit und deren Kosten.

Zusammenfassend werden somit im Datenbankausführungsplan alle verarbeiteten SQL-Anweisungen protokolliert. 



Bildquellen: