www.wikidata.de-de.nina.az
Bei einem Auswertungsplan engl query evaluation plan QEP kurz query plan auch Ausfuhrungsplan genannt handelt es sich um eine Beschreibung in welchen Einzelschritten ein relationales Datenbankmanagementsystem eine Datenbankabfrage ausfuhrt und in welcher Reihenfolge dies geschieht Er wird vom Anfrageoptimierer des Datenbankmanagementsystems generiert wenn eine Datenbankabfrage gestellt wird Inhaltsverzeichnis 1 Anfragebearbeitung 2 Beispiel 3 Siehe auch 4 Anmerkungen und EinzelnachweiseAnfragebearbeitung BearbeitenEine Datenbankabfrage wird mit einer Datenbanksprache wie SQL gestellt Eine solche ist bei einem relationalen Datenbanksystem deklarativ das heisst es wird spezifiziert was als Ergebnismenge generiert werden soll und nicht wie der Zugriff auf die Daten im Einzelnen erfolgt Die Abfrage ist also nicht von der physischen Speicherstruktur der Datenbank abhangig Datenunabhangigkeit den physischen Datenzugriff bewerkstelligt das Datenbankmanagementsystem DBMS Im Allgemeinen sind zu einer deklarativen Abfrage mehrere Moglichkeiten gegeben wie der physische Datenzugriff erfolgen kann von denen das DBMS eine auswahlen muss Verschiedene Strategien beim Datenzugriff unterscheiden sich im Allgemeinen in ihrer Effizienz Die Komponente Anfrageoptimierer des DBMS ist dafur verantwortlich die effizienteste Moglichkeit zu identifizieren sie generiert dafur mehrere mogliche Auswertungsplane eine Beschreibung in welchen Einzelschritten und in welcher Reihenfolge einzelne Operationen ausgefuhrt werden und versucht den effizientesten davon fur die Ausfuhrung der Abfrage auszuwahlen Der so ausgewahlte Auswertungsplan kann anschliessend kompiliert werden oder kann bei interaktiven Anfragen direkt mittels eines Interpreters ausgefuhrt werden 1 Da es dem Anfrageoptimierer im Allgemeinen nicht moglich ist ohne grossen Aufwand den effizientesten der moglichen Auswertungsplane zu identifizieren arbeitet der Anfrageoptimierer mit Heuristiken bei der Auswahl eines Auswertungsplans Softwareentwicklern und Datenbankadministratoren obliegt die Aufgabe beim Auftreten von Performance Problemen bei der Anfragebearbeitung den vom Anfrageoptimierer gewahlten Auswertungsplan zu interpretieren und seine Effizienz zu beurteilen denn oftmals entscheidet sich der Anfrageoptimierer nicht fur die effizienteste Moglichkeit der Anfragebearbeitung oder der Auswertungsplan offenbart das Fehlen von geeigneten Zugriffsstrukturen deren sich das DBMS beim Datenzugriff bedienen kann Der Softwareentwickler bzw der Datenbankadministrator kann dann ggf dem Anfrageoptimierer neben der zu bearbeitenden Abfrage weitere Informationen liefern welche die Generierung eines Auswertungsplans beeinflusst er kann die Abfrage anders formulieren oder die Datenbank um weitere Zugriffsstrukturen zum Beispiel um einen Datenbankindex erganzen Beispiel BearbeitenSei KUNDEN eine Datenbanktabelle mit der Spalte Attribut KUNDENNUMMER welche als Primarschlussel fungiert und mittels eines Indexes KUNDEN PK referenziert wird sowie der Spalte ANZAHL KAEUFE Nun werde folgende Anfrage gestellt select ANZAHL KAEUFE 1 from KUNDEN where KUNDENNUMMER 4 Auf Grundlage dessen konnte der Anfrageoptimierer eines DBMS folgenden Auswertungsplan generieren 2 Id Operation Options Object Rows Access Predicates 0 SELECT STATEMENT 1 1 TABLE ACCESS BY INDEX ROWID KUNDEN 1 2 INDEX UNIQUE SCAN KUNDEN PK 1 KUNDENNUMMER 4 Bei diesem Auswertungsplan lasst sich zum Beispiel folgendes ablesen Die Generierung des Ergebnisses der Abfrage geht durch das Ausfuhren von drei verschiedenen Operationen Spalte Operation vonstatten die Einruckung einer Operation bedeutet dass diese Operation eine Kindoperation der daruberstehenden Operation ist und dass das Ergebnis dieser Operation der Input fur seine Vateroperation ist Die Operationen im Einzelnen sind Zuerst wird die Operation mit der Id 2 ausgefuhrt diese greift auf den Index KUNDEN PK zu und liefert die Adresse des gesuchten Datensatzes die so genannte ROWID an die Vateroperation mit der Id 1 Bei dieser Operation wird das Pradikat KUNDENNUMMER 4 der Anfrage ausgewertet Spalte Access Predicates Danach wird die Operation mit der Id 1 ausgefuhrt Dabei wird mithilfe der ROWID direkt auf den gesuchten Datensatz der Tabelle KUNDEN zugegriffen dieser wird nun an die Operation mit der Id 0 geliefert Schliesslich greift die Operation mit der Id 0 den Wert der Spalte ANZAHL KAEUFE aus dem Input Datensatz ab und bildet die Summe des Werts der Spalte ANZAHL KAEUFE und der Zahl 1 Die Summe wird als Ergebnis an den Aufrufer der obigen Abfrage zuruckgeliefert Die geschatzte Anzahl an Zeilen die von der jeweiligen Operation generiert wird ist jeweils 1 Spalte Rows Der Anfrageoptimierer sammelt im produktiven Betrieb statistische Informationen mithilfe derer sich Schatzungen zur Grosse von Zwischen Ergebnissen vornehmen lassen Ein Auswertungsplan kann noch mehr Informationen als beim obigen Beispiel beinhalten mit denen sich die Effizienz des Auswertungsplans detailliert analysieren lasst Es existieren auch Programme die einen solchen Auswertungsplan statt in einer textuellen in einer grafischen Darstellung generieren konnen Siehe auch BearbeitenTuning Datenbank Anmerkungen und Einzelnachweise Bearbeiten Alfons Kemper Andre Eickler Datenbanksysteme Oldenbourg Verlag 2004 ISBN 3 486 25706 4 Seite 229 Der vorliegende Teil eines Auswertungsplans wurde vom DBMS der XE Edition einer Oracle Datenbank Version 10 2 0 1 0 erzeugt Abgerufen von https de wikipedia org w index php title Auswertungsplan amp oldid 216412687