From 3bf31fafbd502ec946051ecdc2bf765adf056506 Mon Sep 17 00:00:00 2001 From: Christian Bay Date: Wed, 12 Feb 2014 15:11:45 +0100 Subject: [PATCH] Kap 11: Relationale Operatoren fertig --- IDB.tex | 15 +++ Relationale_Operatoren.tex | 196 +++++++++++++++++++++++++++++++++++++ pics/hash_join.png | Bin 0 -> 32622 bytes pics/merge_sort_join.png | Bin 0 -> 29558 bytes pics/trefferrate.png | Bin 0 -> 11941 bytes 5 files changed, 211 insertions(+) create mode 100644 Relationale_Operatoren.tex create mode 100644 pics/hash_join.png create mode 100644 pics/merge_sort_join.png create mode 100644 pics/trefferrate.png diff --git a/IDB.tex b/IDB.tex index 7da96bd..8a9150d 100644 --- a/IDB.tex +++ b/IDB.tex @@ -39,6 +39,19 @@ \setcounter{secnumdepth}{4} \setcounter{tocdepth}{4} \setlength{\parindent}{0pt} +% wrapping environment for pic in paragraphs +\usepackage{floatflt} +% Einruecken nach newline via '//' unterbinden +\setlength{\parindent}{0pt} + +\makeatletter +\renewcommand\paragraph{% + \@startsection{paragraph}{4}{0mm}% + {-\baselineskip}% + {.5\baselineskip}% +{\normalfont\normalsize\bfseries}} +\makeatother + %==INFOBOXEN========================================= %idee: http://tex.stackexchange.com/a/66822 \usepackage[tikz]{bclogo} @@ -64,5 +77,7 @@ \newpage \include{./Speicherung} \include{./Anfrageverarbeitung} +\include{./Relationale_Operatoren} \include{./Transaktionen} + \end{document} diff --git a/Relationale_Operatoren.tex b/Relationale_Operatoren.tex new file mode 100644 index 0000000..42bf1a7 --- /dev/null +++ b/Relationale_Operatoren.tex @@ -0,0 +1,196 @@ +\section{Relationale Operatoren} +\subsection{Allgemein} +Die grundsätzliche Aufgabe besteht darin die logischen Operatoren +(SEL(),PROJ(),JOIN(),\ldots) durch \textbf{Planoperatoren} zu ersetzen.\\ +Teilaufgaben: +\begin{itemize} + \item Erkennung gemeinsamer Teilbäume (notwendig: Zwischenspeicherung + von Ergebnisrelation) + \item {Bestimmung der Verknüpfungsreihenfolge bei Verbundoperationen: + \begin{itemize} + \item Ziel: minimale Kosten für die Operationsfolge + \item Heuristik: Minimierung der Größe der Zwischenergebnisse, + d.h. kleinsten Relationen immer zuerst verknüpfen + \end{itemize} + } + \item Gruppierung von direkt benachbarten Operatoren zu einem einzelnen Planoperator (z.B. Verbund mit Selektion) +\end{itemize} +\subsection{Planoperatoren} +SQL erlaubt Anfragen über k-Relationen: +\begin{itemize} + \item Ein Variablen Ausdrücke (eine Relation) + \item Zwei Variablem AUsdrücke (zwei Relationen) + \item k-Variablen Ausdrücke (zerlegt in Ein- und Zwei Variablen Ausdrücke) +\end{itemize} + +\subsubsection{Selektion} +\begin{itemize} + \item Nutzung eines \textbf{Scan}-Operators\\ + Definition von Start- und Stoppbedingungen sowie Suchargumenten + \item Index Scan $\rightarrow$ Auswahl des kostengünstigsten Index + \item Relationen Scan +\end{itemize} +\subsubsection{Projektion} +\begin{itemize} + \item meist in Kobination mit Verbund, Selektion und Sortierung + \item auch als eigener Planoperator +\end{itemize} +\subsubsection{Sortierung} +\begin{itemize} + \item erforderlich bei \textbf{order by} + \item beschleunigt ggf Joins + \item Duplikateleminierung (\textbf{distinct}) +\end{itemize} +\subsubsection{Joins} +Joins werden in \textbf{binäre} Verbunde gegliedert. Bei $n$ Verbunden +sind $n!$ Reihenfolgen möglich. Die optimale Reihenfolge ist abhängig von +\begin{itemize} + \item Planoperatoren + \item passenden Sortierordnungen + \item Größe der Operanden usw +\end{itemize} +Verbundoperationen sind sehr häufig und auch teuer $\rightarrow$ Optimierung.\\ +Typisch sind \textbf{Gleichverbunde}. +Standartszenario für Verbunde: +\begin{lstlisting} +select * from R,S +where R.VA $\Theta$ S.VA // Verbundpraedikat + // $\Theta \in \{=, >, <, \neq, \geq, \leq\}$ +and P(R.SA) // lokale Selektion +and P(S.SA) // VA = Verbundattribut + // SA = Selektionsattribut + +\end{lstlisting} +\paragraph{Nested Loop Verbund} + +Annahmen:\\ +Sätze in R und S sind nicht nach Verbundsattributen geordnet.\\ +Es sind keine Indexstrukturen $I_R(VA)$ und $I_S(VA)$ vorhanden. +\begin{lstlisting} +Scan ueber $S$; //aeussere Schleife +fuer jeden Satz s, fuer den $P(s.SA)$ gilt: + Scan ueber $R$; //innere Schleife + fuer jeden Satz r, + fuer den P(r.SA) AND (r.VA $\Theta$ s.VA) gilt: + uebernimm kombinierten SAtz (r,s) + in das Ergebnis; +\end{lstlisting} +Komplexität: $\mathcal O(N^2)$ + +\paragraph{Sort-Merge Verbund} + + +Zweiphasiger Algorithmus:\\ + +Phasen: +\begin{enumerate} + \item Sortierung von R und S nach R.VA und S.VA, dabei Eliminierung nicht benötigter Tupel (durch Prüfung von P(R.SA) oder P(S.SA)) + \item schritthaltende Scans über R- und S-Relationen mit Durchführung des Verbundes bei r.VA=s.VA +\end{enumerate} + +Komplexität: $\mathcal O(N \log N)$ +\begin{figure}[H] + \begin{center} + \includegraphics[scale=0.7]{pics/merge_sort_join.png} + \caption{Merge Sort Verbund} + \end{center} +\end{figure} + +\paragraph{Hash Verbund} +Spezialisierung für \textbf{Gleichverbund}. +Da der Hauptspeicher immer größer ist, lassen sich Zwischenergebnisse +besser ausnutzen.\\ +Idee: +\begin{itemize} + \item Tupel der einen Relation im HS ablegen, so dass sie über VerbundAttribut schnell gefunden werden können + \item Tupel der anderen Relation sequenziell durchlaufen und mit Wert + des VerbundAttributs die passenden Verbundpartner im HS aufsuchen + \item Organisation der Tupel im HS über \textbf{Hashing} +\end{itemize} +Einfachster Fall: \textbf{Classic Hashing}:\\ +Funktionsweise:\\ +Äußere Schleife +\begin{itemize} + \item Abschnittweise lesen der kleineren Relation R + \item Relation wird in $p$ Abschnitte aufgeteilt, die alle in HS passen + \item Aufbau einer Hash Tabelle mit $\text{h}_\text{A}($r.VA$)$ +\end{itemize} +Innere Schleife +\begin{itemize} + \item Überprüfung für jeden Satz von S mit P(S.SA) $\rightarrow$ + ebenfalls mit Hashing + \item wenn sich Verbundpartner in dieser Adresse befindet, Durchführung des Verbundes +\end{itemize} +Komplexität: $\mathcal O(p \times N)$. Da Verbundpartner S $p$-mal gelesen werden muss. +\begin{figure}[H] + \begin{center} + \includegraphics[scale=0.8]{pics/hash_join.png} + \caption{Hash Verbund} + \end{center} +\end{figure} +Problem ist, dass S $p$-mal durchlaufen werden muss. Daher die Idee +S analog zu R zu partitionieren.\\ +Stichwort Simple Hashing. + +\subsection{Anfrageoptimierung} +Ziel:\\$\rightarrow$ Ermittlung des \textit{kostengünstigsten} +Auswertungsweges + +Zentrales Problem: +\begin{itemize} + \item globales Optimieren hat hohe Komplexität (NP-Schwer zur Laufzeit) + \item Einsatz von Heuristiken, da nicht alles nötige Wissen immer vorhanden ist +\end{itemize} +Optimierungsziel: +\begin{itemize} + \item Maximierung des Outputs bei gegeben Ressoucren + \item Minimierung der Resourcennutzung +\end{itemize} +Die Wichtigsten Kostenarten sind: +\begin{itemize} + \item Berechnungskosten (CPU) + \item I/O Kosten (Anzahl physischer Referenzen) +\end{itemize} + +\subsubsection{Ausführungsplan} +Ziel ist es eine möglichst guten Ausführungsbaum zu erstellen. +Problematisch ist die riesige Anzahl an Möglichkeiten mit steigender +Komplexität der Anfrage (z.B. Query mit 15 Verbunden $10^{70}$ Möglichkeiten).\\ +Diese Vielfalt entsteht durch verschiedene Implementierungen der Planoperatoren und der Operationsreiehenfolgen. + +$\rightarrow$ \textbf{Ziel der Plangenerierung}: +\begin{itemize} + \item finden von Plänen gelingt immer schnell + \item mit möglichst wenig generierten Plänen auskommen +\end{itemize} +Unterschiedliche Strategieklassen: +\begin{itemize} + \item voll enumerativ + \item beschränkt enumerativ + \item zufallsgesteuert +\end{itemize} + +\paragraph{Kostenformeln} +\begin{itemize} + \item{ gewichtetes Ma"s für I/O und CPU Belastung:\\ + C = \#physische-Seitenzugriffe + W $\times$ \#Aufrufe-des Zugriffsystems} + \item{ CPU-bound : höherer I/O-, geringerer CPU Aufwand:\\ + $\text{W}_{\text{CPU}}$ = \#Instr-pro-Aufruf-des-Zugriffsystems /\\ \#Instr-pro-I/O-Vorgang + } + \item{ I/O-bound : geringere I/O-, höherer CPU Aufwand:\\ + $\text{W}_{\text{CPU}}$ = \#Instr-pro-Aufruf-des-Zugriffsystems /\\ (\#Instr-pro-I/O-Vorgang + Zugriffzeit $\times $ MIPS-Ratte) + } +\end{itemize} + +\paragraph{Selektivitätsanschätzung} +Der \textbf{Selektivitätsfaktor} beschreibt den erwarteten Anteil an +Tupeln, die ein Prädikat p erfüllen.\\ +Diese Trefferate gibt auch an, inwiefern eine vorhandene Indexstruktur +die Laufzeit reduzieren. +\begin{figure}[H] + \begin{center} + \includegraphics[scale=1.0]{pics/trefferrate.png} + \caption{Qualitatives Zugriffsdiagramm} + \end{center} +\end{figure} +Nur bei sehr geringen Trefferraten lohnt sich ein Index Scan! diff --git a/pics/hash_join.png b/pics/hash_join.png new file mode 100644 index 0000000000000000000000000000000000000000..c41a8b5f72e0825fb0a9d2e821d039a2ee2070b2 GIT binary patch literal 32622 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 A;{X5v literal 0 HcmV?d00001 diff --git a/pics/merge_sort_join.png b/pics/merge_sort_join.png new file mode 100644 index 0000000000000000000000000000000000000000..b15180ca7f66e3a12a5825bcd0fae3ed401bb3a2 GIT binary patch literal 29558 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 ZUdXSq2EnrEfo27PNQ%lri-h$*|358DWSIZ} literal 0 HcmV?d00001 diff --git a/pics/trefferrate.png b/pics/trefferrate.png new file mode 100644 index 0000000000000000000000000000000000000000..fed5bf94fd6092cfbcbb8f3d4e43c03d98569e1c GIT binary patch literal 11941 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 D=dHGX literal 0 HcmV?d00001