=Paper=
{{Paper
|id=None
|storemode=property
|title=Auffinden von Spaltenkorrelationen mithilfe proaktiver und reaktiver Verfahren
|pdfUrl=https://ceur-ws.org/Vol-1020/paper_09.pdf
|volume=Vol-1020
|dblpUrl=https://dblp.org/rec/conf/gvd/Buchse13
}}
==Auffinden von Spaltenkorrelationen mithilfe proaktiver und reaktiver Verfahren==
Auffinden von Spaltenkorrelationen mithilfe proaktiver und reaktiver Verfahren Katharina Büchse Friedrich-Schiller-Universität Institut für Informatik Ernst-Abbe-Platz 2 07743 Jena katharina.buechse@uni-jena.de KURZFASSUNG Keywords Zur Verbesserung von Statistikdaten in relativen Datenbank- Anfrageoptimierung, Spaltenkorrelation, Feedback systemen werden seit einigen Jahren Verfahren für das Fin- den von Korrelationen zwischen zwei oder mehr Spalten 1. EINFÜHRUNG entwickelt. Dieses Wissen über Korrelationen ist notwen- dig, weil der Optimizer des Datenbankmanagementsystems Die Verwaltung großer Datenmengen benötigt zunehmend (DBMS) bei der Anfrageplanerstellung sonst von Unabhän- leistungsfähigere Algorithmen, da die Verbesserung der Tech- gigkeit der Daten ausgeht, was wiederum zu groben Fehlern nik (Hardware) nicht mit dem immer höheren Datenauf- bei der Kostenschätzung und somit zu schlechten Ausfüh- kommen heutiger Zeit mithalten kann. Bspw. werden wis- rungsplänen führen kann. senschaftliche Messergebnisse aufgrund besserer Messtech- Die entsprechenden Verfahren gliedern sich grob in proak- nik immer genauer und umfangreicher, sodass Wissenschaft- tive und reaktive Verfahren: Erstere liefern ein gutes Ge- ler sie detaillierter, aber auch umfassender analysieren wol- samtbild über sämtliche vorhandenen Daten, müssen dazu len und müssen, oder Online-Shops speichern sämtliche ihrer allerdings selbst regelmäßig auf die Daten zugreifen und be- Verkaufsdaten und werten sie aus, um dem Benutzer passend nötigen somit Kapazität des DBMS. Letztere überwachen zu seinen Interessen zeitnah und individuell neue Angebote und analysieren hingegen die Anfrageergebnisse und liefern machen zu können. daher nur Korrelationsannahmen für bereits abgefragte Da- Zur Verwaltung dieser wie auch anderer Daten sind (im ten, was einerseits das bisherige Nutzerinteresse sehr gut wi- Datenbankbereich) insbesondere schlaue Optimizer gefragt, derspiegelt, andererseits aber bei Änderungen des Workloads weil sie für die Erstellung der Anfragepläne (und somit für versagen kann. Dafür wird einzig bei der Überwachung der die Ausführungszeit einer jeden Anfrage) verantwortlich sind. Anfragen DBMS-Kapazität benötigt, es erfolgt kein eigen- Damit sie in ihrer Wahl nicht völlig daneben greifen, gibt ständiger Zugriff auf die Daten. es Statistiken, anhand derer sie eine ungefähre Vorstellung Im Zuge dieser Arbeit werden beide Ansätze miteinan- bekommen, wie die vorhandene Datenlandschaft aussieht. der verbunden, um ihre jeweiligen Vorteile auszunutzen. Da- Hierbei ist insbesondere die zu erwartende Tupelanzahl von zu werden die sich ergebenden Herausforderungen, wie sich Interesse, da sie in hohem Maße die Ausführungszeit einer widersprechende Korrelationsannahmen, aufgezeigt und als Anfrage beeinflusst. Je besser die Statistiken die Verteilung Lösungsansatz u. a. der zusätzliche Einsatz von reaktiv er- der Daten wiedergeben (und je aktueller sie sind), desto bes- stellten Statistiken vorgeschlagen. ser ist der resultierende Ausführungsplan. Sind die Daten unkorreliert (was leider sehr unwahrscheinlich ist), genügt es, pro zu betrachtender Spalte die Verteilung der Werte Categories and Subject Descriptors innerhalb dieser Spalte zu speichern. Treten in diesem Fall später in den Anfragen Kombinationen der Spalten auf, er- H.2 [Information Systems]: Database Management; H.2.4 gibt sich die zu erwartende Tupelanzahl mithilfe einfacher [Database Management]: Systems—Query processing statistischer Weisheiten (durch Multiplikation der Einzel- wahrscheinlichkeiten). Leider versagen diese ab einem bestimmten Korrelations- General Terms grad (also bei korrelierten Daten), und zwar in dem Sinne, Theory, Performance dass die vom Optimizer berechneten Schätzwerte zu stark von der Wirklichkeit abweichen, was wiederum zu schlech- ten Ausführungszeiten führt. Diese ließen sich u.U. durch die Wahl eines anderen Plans, welcher unter Berücksichtigung der Korrelation vom Optimizer erstellt wurde, verringern oder sogar vermeiden. Zur Veranschaulichung betrachten wir eine Tabelle, wel- th che u. a. die Spalten A und B besitzt, und eine Anfrage, 25 GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 28.05.2013 - 31.05.2013, Ilmenau, Germany. welche Teile eben dieser Spalten ausgeben soll. Desweiteren Copyright is held by the author/owner(s). liege auf Spalte B ein Index, den wir mit IB bezeichnen wol- len, und es existiere ein zusammengesetzter Index IA,B für Daher gibt es zwei grundsätzliche Möglichkeiten: Entwe- beide Spalten. Beide Indizes seien im DBMS mithilfe von der schauen wir dem Benutzer auf die Finger und suchen Bäumen (bspw. B∗ -Bäume) implementiert, sodass wir auch in den von ihm abgefragten Daten nach Korrelationen (das (etwas informell) von flachen“ oder hohen“ Indizes spre- entspricht einer reaktiven Vorgehensweise), oder wir suchen ” ” ” chen können. uns selbst“ ein paar Daten der Datenbank aus“, die wir ” Sind beide Spalten unkorreliert, so lohnt sich in der Regel untersuchen wollen (und gehen somit proaktiv vor). Beide die Abfrage über IA,B . Bei einer starken Korrelation bei- Vorgehensweisen haben ihre Vor- und Nachteile. Während der Spalten dagegen könnte die alleinige Verwendung von im reaktiven Fall keine Daten speziell zur Korrelationsfin- IB vorteilhaft sein, und zwar wenn die Werte aus Spalte A dung angefasst“ werden müssen, hier aber alle Daten, die ” i.d.R. durch die Werte aus Spalte B bestimmt werden (ein bis zu einer bestimmten Anfrage nie abgefragt wurden, als typisches Beispiel, welches auch in CORDS [7] anzutreffen unkorreliert gelten, müssen wir für die proaktive Methode ist, wäre eine Tabelle Auto“ mit den Spalten A = Firma“ (also nur zum Feststellen, ob Korrelation vorherrscht) extra ” ” und B = Marke“, sodass sich für A Werte wie Opel“ oder Daten lesen, sind aber für (fast) alle Eventualitäten gewapp- ” ” Mercedes“ und für B Werte wie Zafira“ oder S-Klasse“ er- net. ” ” ” geben). Statt nun im vergleichsweise hohen Index IA,B erst Interessanterweise kann es vorkommen, dass beide Metho- passende A- und dann passende B-Werte zu suchen, werden den für ein und dieselbe Spaltenkombination unterschied- sämtliche Tupel, welche die gewünschten B-Werte enthalten, liche Ergebnisse liefern (der Einfachheit halber beschrän- über den flacheren Index IB geladen und überprüft, ob die ken wir uns hierbei auf die möglichen Ergebnisse korre- ” jeweiligen A-Werte der Anfrage entsprechen (was aufgrund liert“ oder unabhängig“). Für den Fall, dass die reaktive ” der Abhängigkeit der Regelfall sein sollte). Methode eine Spaltenkombination gar nicht betrachtet hat, sollte das klar sein. Aber nehmen wir an, dass die Kombi- Das Wissen über Korrelationen fällt aber natürlich nicht nation von beiden Methoden analysiert wurde. Da für die vom Himmel, es hat seinen Preis. Jeder Datenbänkler hofft, Analyse höchstwahrscheinlich jeweils unterschiedliche Tupel dass seine Daten unkorreliert sind, weil sein DBMS dann we- (Wertekombinationen) verwendet wurden, können sich na- niger Metadaten (also Daten über die Daten) speichern und türlich auch die Schlüsse unterscheiden. Hier stellt sich nun verwalten muss, sondern auf die bereits erwähnten statis- die Frage, welches Ergebnis besser“ ist. Dafür gibt es kei- ” tischen Weisheiten zurückgreifen kann. Sind die Daten da- ne allgemeine Antwort, gehen wir aber von einer modera- gegen (stark) korreliert, lässt sich die Erkenntnis darüber ten Änderung des Anfrageverhaltens aus, ist sicherlich das nicht so einfach wie die Unabhängigkeit mit (anderen) sta- reaktive Ergebnis“ kurzfristig entscheidender, während das ” tistischen Weisheiten verbinden und somit abarbeiten“. proaktive Ergebnis“ in die längerfristige Planung der Sta- ” ” Nicht jede (eher kaum eine) Korrelation stellt eine (schwa- tistikerstellung mit aufgenommen werden sollte. che) funktionale Abhängigkeit dar, wie es im Beispiel der Fall war, wo wir einfach sagen konnten Aus der Marke folgt ” die Firma (bis auf wenige Ausnahmen)“. Oft liebäugeln be- 2. GRUNDLAGEN stimmte Werte der einen Spalte mit bestimmten Werten an- Wie in der Einleitung bereits angedeutet, können Korrela- derer Spalten, ohne sich jedoch in irgendeiner Weise auf diese tionen einem Datenbanknutzer den Tag vermiesen. Um dies Kombinationen zu beschränken. (In Stuttgart gibt es sicher- zu verhindern, wurden einige Methoden vorgeschlagen, wel- lich eine Menge Porsches, aber die gibt es woanders auch.) che sich auf verschiedene Art und Weise dieser Problematik Außerdem ändern sie möglicherweise mit der Zeit ihre Vor- annehmen (z. B. [7, 6]) oder sie sogar ausnutzen (z. B. [4, 8]), lieben (das Stuttgarter Porschewerk könnte bspw. nach Chi- um noch an Performance zuzulegen. Letztere sind allerdings na umziehen) oder schaffen letztere völlig ab (wer braucht mit hohem Aufwand oder der Möglichkeit, fehlerhafte An- schon einen Porsche? Oder überhaupt ein Auto?). frageergebnisse zu liefern1 , verbunden. Daher konzentrieren Deswegen werden für korrelierte Daten zusätzliche Sta- wir uns hier auf das Erkennen von Korrelationen allein zur tistiken benötigt, welche nicht nur die Werteverteilung ei- Verbesserung der Statistiken und wollen hierbei zwischen ner, sondern die Werteverteilung mehrerer Spalten wiederge- proaktiven und reaktiven Verfahren unterscheiden. ben. Diese zusätzlichen Statistiken müssen natürlich irgend- wo abgespeichert und, was noch viel schlimmer ist, gewartet 2.1 Proaktive (datengetriebene) Verfahren werden. Somit ergeben sich zusätzlicher Speicherbedarf und Proaktiv zu handeln bedeutet, etwas auf Verdacht“ zu ” zusätzlicher Aufwand, also viel zu viel von dem, was keiner tun. Impfungen sind dafür ein gutes Beispiel – mithilfe ei- so richtig will. ner Impfung ist der Körper in der Lage, Krankheitserreger zu bekämpfen, aber in vielen Fällen ist unklar, ob er die- Da sich ein bisschen statistische Korrelation im Grunde se Fähigkeit jemals benötigen wird. Da Impfungen auch mit überall findet, gilt es, die Korrelationen ausfindig zu ma- Nebenwirkungen verbunden sein können, muss jeder für sich chen, welche unsere statistischen Weisheiten alt aussehen entscheiden, ob und wogegen er sich impfen lässt. lassen und dazu führen, dass das Anfrageergebnis erst nach Auch Datenbanken können geimpft“ werden, allerdings ” einer gefühlten halben Ewigkeit ausgeben wird. Ob letzte- handelt es sich bei langen Anfrageausführungszeiten (die res überhaupt passiert, hängt natürlich auch vom Anfrage- wir ja bekämpfen wollen) eher um Symptome (wie Bauch- verhalten auf die Datenbank ab. Wenn die Benutzer sich schmerzen oder eine laufende Nase), die natürlich unter- in ihren (meist mithilfe von Anwendungsprogrammen abge- schiedliche Ursachen haben können. Eine davon bilden ganz setzten) SQL-Anfragen in der WHERE-Klausel jeweils auf 1 eine Spalte beschränken und auf jedwede Verbünde (Joins) Da die Verfahren direkt in die Anfrageplanerstellung ein- verzichten, dann ist die Welt in Ordnung. Leider lassen sich greifen und dabei auf ihr Wissen über Korrelationen aufbau- Benutzer nur ungern so stark einschränken. en, muss, für ein korrektes Anfrageergebnis, dieses Wissen aktuell und vollständig sein. klar Korrelationen zwischen den Daten, wobei natürlich erst 2.2 Reaktive (anfragegetriebene) Verfahren ein gewisses Maß an Korrelation überhaupt als krankhaft“ Während wir im vorherigen Abschnitt Vermutungen auf- ” anzusehen ist. (Es benötigt ja auch eine gewisse Menge an gestellt und auf Verdacht gehandelt haben, um den Daten- Bakterien, damit eine Krankheit mit ihren Symptomen aus- bankbenutzer glücklich zu machen, gehen wir jetzt davon bricht.) Der grobe Impfvorgang“ gegen“ Korrelationen um- aus, dass den Benutzer auch weiterhin das interessieren wird, ” ” fasst zwei Schritte: wofür er sich bis jetzt interessiert hat. Wir ziehen also aus der Vergangenheit Rückschlüsse für 1. Es werden Vermutungen aufgestellt, welche Spalten- die Zukunft, und zwar indem wir den Benutzer bei seinem kombinationen für spätere Anfragen eine Rolle spielen Tun beobachten und darauf reagieren (daher auch die Be- könnten. zeichnung reaktiv“). Dabei achten wir nicht allein auf die ” 2. Es wird kontrolliert, ob diese Kombinationen von Kor- gestellten SQL-Anfragen, sondern überwachen viel mehr die relation betroffen sind oder nicht. von der Datenbank zurückgegebenen Anfrageergebnisse. Die- se verraten uns nämlich alles (jeweils 100-prozentig aktuell!) Entscheidend dabei ist, dass die Daten bzw. ein Teil der über den Teil der vorhandenen Datenlandschaft, den der Be- Daten gelesen (und analysiert) werden, und zwar ohne da- nutzer bis jetzt interessant fand. mit konkrete Anfragen zu bedienen, sondern rein zur Aus- Auf diese Weise können bspw. Statistiken erzeugt werden führung des Verfahrens bzw. der Impfung“ (in diesem Fall [5, 11, 3] (wobei STHoles [5] und ISOMER [11] sogar in ” gegen“ Korrelation, wobei die Korrelation natürlich nicht der Lage sind, mehrdimensionale Statistiken zu erstellen) ” beseitigt wird, schließlich können wir schlecht den Datenbe- oder es lassen sich mithilfe alter Anfragen neue, ähnliche stand ändern, sondern die Datenbank lernt, damit umzuge- Anfragen in ihrer Performance verbessern [12]. Sinnvoll kann hen). Das Lesen und Analysieren kostet natürlich Zeit, wo- auch eine Unterbrechung der Anfrageausführung mit damit mit klar wird, dass auch diese Impfung“ Nebenwirkungen“ verbundener Reoptimierung sein [9, 2, 10]. Zu guter letzt ” ” mit sich bringt. lässt sich mithilfe dieses Ansatzes zumindest herausfinden, Eine konkrete Umsetzung haben Ilyas et al., aufbauend welche Statistikdaten entscheidend sein könnten [1]. auf BHUNT [4], mit CORDS [7] vorgestellt. Dieses Verfah- In [1] haben Aboulnaga et al. auch schon erste Ansätze für ren findet Korrelationen zwischen Spaltenpaaren, die Spal- eine Analyse auf Spaltenkorrelation vorgestellt, welche spä- tenanzahl pro Spaltenkombination wurde also auf zwei be- ter in [6] durch Haas et al. ausgebaut und verbessert wurden. grenzt.2 In Analogie zu CORDS werden in [1] und [6] nur Spaltenpaa- Es geht folgendermaßen vor: Im ersten Impfschritt“ sucht re für die Korrelationssuche in Betracht gezogen. Allerdings ” es mithilfe des Katalogs oder mittels Stichproben nach Schlüs- fällt die Auswahl der infrage kommenden Spaltenpaare we- sel-Fremdschlüssel-Beziehungen und führt somit eine Art sentlich leichter aus, weil einfach alle Spaltenpaare, die in Rückabbildung von Datenbank zu Datenmodell durch (engl. den Anfragen (mit hinreichend vielen Daten3 ) vorkommen, reverse engineering“) [4]. Darauf aufbauend werden dann potentielle Kandidaten bilden. ” nur solche Spaltenkombinationen als für die Korrelationssu- Während in [1] pro auftretendes Wertepaar einer Spalten- che infrage kommend angesehen, deren Spalten kombination ein Quotient aus Häufigkeit bei Unabhängig- ” keit“ und tatsächliche Häufigkeit“ gebildet und das Spal- a) aus derselben Tabelle stammen oder ” tenpaar als korreliert“ angesehen wird, sobald zu viele die- ” b) aus einer Verbundtabelle stammen, wobei der Verbund ser Quotienten von einem gewissen Wert abweichen, setzen ( Join“) mittels (Un-) Gleichung zwischen Schlüssel- Haas et al. in [6] einen angepassten Chi-Quadrat-Test ein, ” um Korrelationen zu finden. Dieser ist etwas aufwendiger als und Fremdschlüsselspalten entstanden ist. die Vorgehensweise von [1], dafür jedoch nicht so fehleranfäl- Zudem gibt es zusätzliche Reduktionsregeln (engl. pruning lig [6]. Zudem stellen Haas et al. in [6] Möglichkeiten vor, wie ” rules“) für das Finden der Beziehungen und für die Aus- sich die einzelnen Korrelationswerte“ pro Spaltenpaar mit- ” wahl der zu betrachtenden Spaltenkombinationen. Schließ- einander vergleichen lassen, sodass, ähnlich wie in CORDS, lich kann die Spaltenanzahl sehr hoch sein, was die Anzahl eine Rangliste der am stärksten korrelierten Spaltenpaare an möglichen Kombinationen gegebenenfalls ins Unermess- erstellt werden kann. Diese kann als Entscheidungshilfe für liche steigert. das Anlegen zusätzlicher Statistikdaten genutzt werden. Im zweiten Impfschritt“ wird für jede Spaltenkombinati- ” on eine Stichprobe entnommen und darauf aufbauend eine Kontingenztabelle erstellt. Letztere dient dann wiederum als 3. HERAUSFORDERUNGEN Grundlage für einen Chi-Quadrat-Test, der als Ergebnis eine In [6] wurde bereits vorgeschlagen, dieses Verfahren mit Zahl χ2 ≥ 0 liefert. Gilt χ2 = 0, so sind die Spalten voll- CORDS zu verbinden. Das reaktive Verfahren spricht auf- ständig unabhängig. Da dieser Fall aber in der Praxis kaum grund seiner Effizienz für sich, während das proaktive Ver- auftritt, muss χ2 einen gewissen Schwellwert überschreiten, fahren eine gewisse Robustheit bietet und somit bei Lern- damit die entsprechende Spaltenkombination als korreliert phasen von [6] (wenn es neu eingeführt wird oder wenn sich angesehen wird. Zum Schluss wird eine Art Rangliste der die Anfragen ändern) robuste Schätzwerte zur Erstellung Spaltenkombinationen mit den höchsten χ2 -Werten erstellt eines Anfrageplans berechnet werden können [6]. Dazu soll- und für die obersten n Kombinationen werden zusätzliche te CORDS entweder in einem gedrosselten Modus während Statistikdaten angelegt. Die Zahl n ist dabei u. a. durch die des normalen Datenbankbetriebs laufen oder während War- Größe des Speicherplatzes (für Statistikdaten) begrenzt. tungszeiten ausgeführt werden. Allerdings werden in [6] kei- ne Aussagen darüber getroffen, wie die jeweiligen Ergebnis- 2 Die Begrenzung wird damit begründet, dass auf diese Weise 3 das beste Aufwand-Nutzen-Verhältnis entsteht. Das Verfah- Um aussagefähige Ergebnisse zu bekommen, wird ein ge- ren selbst ist nicht auf Spaltenpaare beschränkt. wisses Mindestmaß an Beobachtungen benötigt, insb. in [6]. se beider Verfahren miteinander kombiniert werden sollten. ders interessant sein könnten, die möglicherweise eben gera- Folgende Punkte sind dabei zu bedenken: de mit Korrelation einhergehen, spricht wiederum für eine Art Hinweis“ an den Optimizer. • Beide Verfahren liefern eine Rangliste mit den als am ” stärksten von Korrelation betroffenen Spalten. Aller- dings sind die den Listen zugrunde liegenden Korrela- 4. LÖSUNGSANSATZ ” tionswerte“ (s. bspw. χ2 im Abschnitt über proaktive Da CORDS wie auch das Verfahren aus [6] nur Spalten- Verfahren) auf unterschiedliche Weise entstanden und paare betrachten und dies mit einem sich experimentell erge- lassen sich nicht einfach vergleichen. Liefern beide Lis- benem Aufwand-Nutzen-Optimum begründen, werden auch ten unterschiedliche Spaltenkombinationen, so kann es wir uns auf Spaltenpaare begrenzen. Allerdings wollen wir passieren, dass eine Kombination, die in der eine Lis- uns für die Kombination von proaktiver und reaktiver Kor- te sehr weit unten erscheint, stärker korreliert ist, als relationssuche zunächst nicht auf diese beiden Verfahren be- Kombinationen, die auf der anderen Liste sehr weit schränken, müssen aber doch gewisse Voraussetzungen an oben aufgeführt sind. die verwendeten Verfahren (und das Datenmodell der Da- tenbank) stellen. Diese seien hier aufgezählt: • Die Daten, welche zu einer gewissen Entscheidung bei den beiden Verfahren führen, ändern sich, werden aber 1. Entscheidung über die zu untersuchenden Spaltenkom- in der Regel nicht gleichzeitig von beiden Verfahren ge- binationen: lesen. Das hängt damit zusammen, dass CORDS zu ei- nem bestimmten Zeitpunkt eine Stichprobe entnimmt • Das proaktive Verfahren betreibt reverse engi- und darauf seine Analyse aufbaut, während das Ver- ” neering“, um zu entscheiden, welche Spaltenkom- fahren aus [6] die im Laufe der Zeit angesammelten binationen untersucht werden sollen. Anfragedaten auswertet. • Das Datenmodell der Datenbank ändert sich nicht, • Da zusätzliche Statistikdaten Speicherplatz benötigen bzw. sind nur geringfügige Änderungen zu erwar- und vor allem gewartet werden müssen, ist es nicht ten, welche vom proaktiven Verfahren in das von sinnvoll, einfach für alle Spaltenkombinationen, die in ihm erstellte Datenmodell sukzessive eingearbei- der einen und/oder der anderen Rangliste vorkommen, tet werden können. Auf diese Weise können wir gleich zu verfahren und zusätzliche Statistiken zu er- bei unseren Betrachtungen den ersten Impfschritt“ ” stellen. vernachlässigen. Zur Verdeutlichung wollen wir die Tabelle aller Firmen- 2. Datengrundlage für die Untersuchung: wagen eines großen, internationalen IT-Unternehmens be- trachten, in welcher zu jedem Wagen u. a. seine Farbe und • Das proaktive Verfahren entnimmt für jegliche zu die Personal- sowie die Abteilungsnummer desjenigen Mitar- untersuchende Spaltenkombination eine Stichpro- beiters verzeichnet ist, der den Wagen hauptsächlich nutzt. be, welche mit einem Zeitstempel versehen wird. Diverse dieser Mitarbeiter wiederum gehen in einem Dres- Diese Stichprobe wird solange aufbewahrt, bis das dener mittelständischen Unternehmen ein und aus, welches Verfahren auf Unkorreliertheit“ plädiert oder für nur rote KFZ auf seinem Parkplatz zulässt (aus Kapazitäts- ” die entsprechende Spaltenkombination eine neue gründen wurde eine solche, vielleicht etwas seltsam anmu- Stichprobe erstellt wird. tende Regelung eingeführt). Da die Mitarbeiter sich dieser Regelung bei der Wahl ihres Wagens bewusst waren, fahren • Das reaktive Verfahren bedient sich eines Que- sie alle ein rotes Auto. Zudem sitzen sie alle in derselben ry-Feedback-Warehouses, in welchem die Beob- Abteilung. achtungen ( Query-Feedback-Records“) der An- ” Allerdings ist das internationale Unternehmen wirklich fragen notiert sind. sehr groß und besitzt viele Firmenwagen sowie unzählige Abteilungen, sodass diese roten Autos in der Gesamtheit der 3. Vergleich der Ergebnisse: Tabelle nicht auffallen. In diesem Sinne würde das proaktive Verfahren CORDS also (eher) keinen Zusammenhang zwi- • Beide Verfahren geben für jede Spaltenkombinati- schen der Abteilungsnummer des den Wagen benutzenden on, die sie untersucht haben, einen Korrelations- ” Mitarbeiters und der Farbe des Autos erkennen. wert“ aus, der sich innerhalb des Verfahrens ver- Werden aber häufig genau diese Mitarbeiter mit der Farbe gleichen lässt. Wie dieser genau berechnet wird, ihres Wagens abgefragt, z. B. weil sich diese kuriose Rege- ist für uns unerheblich. lung des mittelständischen Unternehmens herumspricht, es • Aus den höchsten Korrelationswerten ergeben sich keiner so recht glauben will und deswegen die Datenbank zwei Ranglisten der am stärksten korrelierten Spal- konsultiert, so könnte ein reaktives Verfahren feststellen, tenpaare, die wir unterschiedlich auswerten wol- dass beide Spalten korreliert sind. Diese Feststellung tritt len. insbesondere dann auf, wenn sonst wenig Anfragen an beide betroffenen Spalten gestellt werden, was durchaus möglich Zudem wollen wir davon ausgehen, dass das proaktive Ver- ist, weil sonst die Farbe des Wagens eine eher untergeordnete fahren in einem gedrosselten Modus ausgeführt wird und Rolle spielt. somit sukzessive seine Rangliste befüllt. (Zusätzliche War- Insbesondere der letztgenannte Umstand macht deutlich, tungszeiträume, bei denen das Verfahren ungedrosselt lau- dass es nicht sinnvoll ist, Statistikdaten für die Gesamtheit fen kann, beschleunigen die Arbeit und bilden somit einen beider Spalten zu erstellen und zu warten. Aber die Tat- schönen Zusatz, aber da heutzutage viele Datenbanken quasi sache, dass bestimmte Spezialfälle für den Benutzer beson- dauerhaft laufen müssen, wollen wir sie nicht voraussetzen.) Das reaktive Verfahren dagegen wird zu bestimmten Zeit- in der Rangliste des reaktiven Verfahrens, dann löschen wir punkten gestartet, um die sich bis dahin angesammelten Be- die reaktiv erstellten Statistiken und erstellen neue Statis- obachtungen zu analysieren, und gibt nach beendeter Ana- tiken mittels einer Stichprobe, analog zum ersten Fall. (Die lyse seine Rangliste bekannt. Da es als Grundlage nur die Kombination beider Statistiktypen wäre viel zu aufwendig, Daten aus dem Query-Feedback-Warehouse benötigt, kann u. a. wegen unterschiedlicher Entstehungszeitpunkte.) Wenn es völlig entkoppelt von der eigentlichen Datenbank laufen. das proaktive Verfahren dagegen explizit unkorreliert“ aus- ” gibt, bleibt es bei den reaktiv erstellten Statistiken, s. oben. Ist die reaktive Rangliste bekannt, kann diese mit der (bis dahin angefertigten) proaktiven Rangliste verglichen wer- Wenn jedoch nur das proaktive Verfahren eine bestimmte den. Tritt eine Spaltenkombination in beiden Ranglisten auf, Korrelation erkennt, dann ist diese Erkenntnis zunächst für so bedeutet das, dass diese Korrelation für die bisherigen An- die Benutzer unerheblich. Sei es, weil der Nutzer diese Spal- fragen eine Rolle gespielt hat und nicht nur auf Einzelfälle tenkombination noch gar nicht abgefragt hat, oder weil er beschränkt ist, sondern auch mittels Analyse einer repräsen- bis jetzt nur den Teil der Daten benötigt hat, der scheinbar tativen Stichprobe an Wertepaaren gefunden wurde. unkorreliert ist. In diesem Fall markieren wir nur im Daten- Unter diesen Umständen lassen wir mittels einer Stichpro- bankkatolog (wo die Statistiken abgespeichert werden) die be Statistikdaten für die betreffende Spaltenkorrelation er- beiden Spalten als korreliert und geben dem Optimizer somit stellen. Dabei wählen wir die Stichprobe des proaktiven Ver- ein Zeichen, dass hier hohe Schätzfehler möglich sind und fahrens, solange diese ein gewisses Alter nicht überschritten er deswegen robuste Pläne zu wählen hat. Dabei bedeutet hat. Ist sie zu alt, wird eine neue Stichprobe entnommen.4 robust“, dass der gewählte Plan für die errechneten Schätz- ” werte möglicherweise nicht ganz optimal ist, dafür aber bei Interessanter wird es, wenn nur eines der Verfahren auf stärker abweichenden wahren Werten“ immer noch akzep- ” Korrelation tippt, während das andere Verfahren die ent- table Ergebnisse liefert. Zudem können wir ohne wirklichen sprechende Spaltenkombination nicht in seiner Rangliste ent- Einsatz des reaktiven Verfahrens die Anzahl der Anfragen hält. Die Ursache dafür liegt entweder darin, dass letzteres zählen, die auf diese Spalten zugreifen und bei denen sich Verfahren die Kombination noch nicht analysiert hat (beim der Optimizer stark verschätzt hat. Übersteigt der Zähler reaktiven Verfahren heißt das, dass sie nicht oder zu selten einen Schwellwert, werden mithilfe einer neuen Stichprobe in den Anfragen vorkam), oder bei seiner Analyse zu dem (vollständige, also insb. mit Werteverteilung) Statistikdaten Ergebnis nicht korreliert“ gekommen ist. erstellt und im Katalog abgelegt. ” Diese Unterscheidung wollen wir insbesondere in dem Fall vornehmen, wenn einzig das reaktive Verfahren die Korre- Der Vollständigkeit halber wollen wir hier noch den Fall lation entdeckt“ hat. Unter der Annahme, dass weitere, erwähnen, dass eine Spaltenkombination weder in der einen, ” ähnliche Anfragen folgen werden, benötigt der Optimizer noch in der anderen Rangliste vorkommt. Es sollte klar sein, schnell Statistiken für den abgefragten Bereich. Diese sol- dass diese Kombination als unkorreliert“ angesehen und so- ” len zunächst reaktiv mithilfe der Query-Feedback-Records mit für die Statistikerstellung nicht weiter betrachtet wird. aus der Query-Feedback-Warehouse erstellt werden (unter Verwendung von bspw. [11], wobei wir nur zweidimensionale Statistiken benötigen). Das kann wieder völlig getrennt von 5. AUSBLICK der eigentlichen Datenbank geschehen, da nur das Query- Die hier vorgestellte Vorgehensweise zur Verbesserung der Feedback-Warehouse als Grundlage dient. Korrelationsfindung mittels Einsatz zweier unterschiedlicher Wir überprüfen nun, ob das proaktive Verfahren das Spal- Verfahren muss weiter vertieft und insbesondere praktisch tenpaar schon bearbeitet hat. Dies sollte anhand der Ab- umgesetzt und getestet werden. Vor allem muss ein passen- arbeitungsreihenfolge der infrage kommenden Spaltenpaare des Datenmodell für die reaktive Erstellung von Spalten- erkennbar sein. paarstatistiken gefunden werden. Das vorgeschlagene Ver- Ist dem so, hat das proaktive Verfahren das entsprechen- fahren ISOMER [11] setzt hier auf STHoles [5], einem Da- de Paar als unkorreliert“ eingestuft und wir bleiben bei den ” tenmodell, welches bei sich stark überschneidenden Anfra- reaktiv erstellten Statistiken, die auch nur reaktiv aktuali- gen schnell inperformant werden kann. Für den eindimen- siert werden. Veralten sie später zu stark aufgrund fehlender sionalen Fall wurde bereits von Informix-Entwicklern eine Anfragen (und somit fehlendem Nutzerinteresse), können sie performante Lösung vorgestellt [3], welche sich aber nicht gelöscht werden. einfach auf den zweidimensionalen Fall übertragen lässt. Ist dem nicht so, geben wir die entsprechende Kombina- tion an das proaktive Verfahren weiter mit dem Auftrag, Eine weitere, noch nicht völlig ausgearbeitete Herausfor- diese zu untersuchen.5 Beim nächsten Vergleich der Ranglis- derung bildet die Tatsache, dass das proaktive Verfahren im ten muss es für das betrachtete Spaltenpaar eine konkrete gedrosselten Modus läuft und erst sukzessive seine Rangliste Antwort geben. Entscheidet sich das proaktive Verfahren für erstellt. Das bedeutet, dass wir eigentlich nur Zwischener- korreliert“ und befindet sich das Spaltenpaar auch wieder ” gebnisse dieser Rangliste mit der reaktiv erstellten Ranglis- 4 te vergleichen. Dies kann zu unerwünschten Effekten füh- Falls die betroffenen Spalten einen Zähler besitzen, der bei ren, z. B. könnten beide Ranglisten völlig unterschiedliche Änderungsoperationen hochgezählt wird (vgl. z. B. [1]), kön- Spaltenkombinationen enthalten, was einfach der Tatsache nen natürlich auch solche Daten mit in die Wahl der Stich- geschuldet ist, dass beide Verfahren unterschiedliche Spal- probe einfließen, allerdings sind hier unterschiedliche Aus- gangszeiten“ zu beachten. ” tenkombinationen untersucht haben. Um solche Missstände 5 Dadurch stören wir zwar etwas die vorgegebene Abarbei- zu vermeiden, muss die proaktive Abarbeitungsreihenfolge tungsreihenfolge der infrage kommenden Spaltenpaare, aber der Spaltenpaare überdacht werden. In CORDS wird bspw. der Fall ist ja auch dringend. als Reduktionsregel vorgeschlagen, nur Spaltenpaare zu be- trachten, die im Anfrageworkload vorkommen (dazu müssen [9] V. Markl, V. Raman, D. Simmen, G. Lohman, von CORDS nur die Anfragen, aber nicht deren Ergebnis- H. Pirahesh, and M. Cilimdzic. Robust query se betrachtet werden). Würde sich dann aber der Workload processing through progressive optimization. In ACM, dahingehend ändern, dass völlig neue Spalten oder Tabel- editor, Proceedings of the 2004 ACM SIGMOD len abgefragt werden, hätten wir dasselbe Problem wie bei International Conference on Management of Data einem rein reaktiven Verfahren. Deswegen muss hier eine 2004, Paris, France, June 13–18, 2004, pages 659–670. Zwischenlösung gefunden werden, die Spaltenkombinationen ACM Press, 2004. aus Anfragen bevorzugt behandelt“, sich aber nicht darauf [10] T. Neumann and C. Galindo-Legaria. Taking the edge ” beschränkt. off cardinality estimation errors using incremental Außerdem muss überlegt werden, wann wir Statistikda- execution. In BTW, pages 73–92, 2013. ten, die auf Stichproben beruhen, wieder löschen können. [11] U. Srivastava, P. J. Haas, V. Markl, M. Kutsch, and Im reaktiven Fall fiel die Entscheidung leicht aus, weil feh- T. M. Tran. ISOMER: Consistent histogram lender Zugriff auf die Daten auch ein fehlendes Nutzerinter- construction using query feedback. In ICDE, page 39. esse widerspiegelt und auf diese Weise auch keine Aktuali- IEEE Computer Society, 2006. sierung mehr stattfindet, sodass die Metadaten irgendwann [12] M. Stillger, G. Lohman, V. Markl, and M. Kandil. unbrauchbar werden. LEO - DB2’s learning optimizer. In Proceedings of the Basieren die Statistiken dagegen auf Stichproben, müs- 27th International Conference on Very Large Data sen sie von Zeit zu Zeit aktualisiert werden. Passiert diese Bases(VLDB ’01), pages 19–28, Orlando, Sept. 2001. Aktualisierung ohne zusätzliche Überprüfung auf Korrelati- on (welche ja aufgrund geänderten Datenbestands nachlas- sen könnte), müssen mit der Zeit immer mehr zusätzliche Statistikdaten über Spaltenpaare gespeichert und gewartet werden. Der für Statistikdaten zur Verfügung stehende Spei- cherplatz im Katalog kann so an seine Grenzen treten, au- ßerdem kostet die Wartung wiederum Kapazität des DBMS. Hier müssen sinnvolle Entscheidungen über die Wartung und das Aufräumen“ nicht mehr benötigter Daten getroffen wer- ” den. 6. REFERENCES [1] A. Aboulnaga, P. J. Haas, S. Lightstone, G. M. Lohman, V. Markl, I. Popivanov, and V. Raman. Automated statistics collection in DB2 UDB. In VLDB, pages 1146–1157, 2004. [2] S. Babu, P. Bizarro, and D. J. DeWitt. Proactive re-optimization. In SIGMOD Conference, pages 107–118. ACM, 2005. [3] E. Behm, V. Markl, P. Haas, and K. Murthy. Integrating query-feedback based statistics into informix dynamic server, Apr. 03 2008. [4] P. Brown and P. J. Haas. BHUNT: Automatic discovery of fuzzy algebraic constraints in relational data. In VLDB 2003: Proceedings of 29th International Conference on Very Large Data Bases, September 9–12, 2003, Berlin, Germany, pages 668–679, 2003. [5] N. Bruno, S. Chaudhuri, and L. Gravano. Stholes: a multidimensional workload-aware histogram. SIGMOD Rec., 30(2):211–222, May 2001. [6] P. J. Haas, F. Hueske, and V. Markl. Detecting attribute dependencies from query feedback. In VLDB, pages 830–841. ACM, 2007. [7] I. F. Ilyas, V. Markl, P. Haas, P. Brown, and A. Aboulnaga. CORDS: automatic discovery of correlations and soft functional dependencies. In ACM, editor, Proceedings of the 2004 ACM SIGMOD International Conference on Management of Data 2004, Paris, France, June 13–18, 2004, pages 647–658, pub-ACM:adr, 2004. ACM Press. [8] H. Kimura, G. Huo, A. Rasin, S. Madden, and S. B. Zdonik. Correlation maps: A compressed access method for exploiting soft functional dependencies. PVLDB, 2(1):1222–1233, 2009.