=Paper= {{Paper |id=Vol-1313/paper_05 |storemode=property |title=Proaktive modellbasierte Performance-Analyse und -Vorhersage von Datenbankanwendungen |pdfUrl=https://ceur-ws.org/Vol-1313/paper_5.pdf |volume=Vol-1313 |dblpUrl=https://dblp.org/rec/conf/gvd/Koch14 }} ==Proaktive modellbasierte Performance-Analyse und -Vorhersage von Datenbankanwendungen== https://ceur-ws.org/Vol-1313/paper_5.pdf
         Proaktive modellbasierte Performance-Analyse und
             -Vorhersage von Datenbankanwendungen
                                                                Christoph Koch
          Friedrich-Schiller-Universität Jena
           Lehrstuhl für Datenbanken und                                                             DATEV eG
                 Informationssysteme                                                           Abteilung Datenbanken
                  Ernst-Abbe-Platz 2                                                           Paumgartnerstr. 6 - 14
                      07743 Jena                                                                  90429 Nürnberg
          Christoph.Koch@uni-jena.de                                                      Christoph.Koch@datev.de


KURZFASSUNG
Moderne (Datenbank-)Anwendungen sehen sich in der heutigen
                                                                           1. EINLEITUNG
                                                                           Zur Erfüllung komplexerer Anforderungen und maximalen
Zeit mit immer höheren Anforderungen hinsichtlich Flexibilität,
                                                                           Benutzerkomforts ist gute Performance eine Grundvoraussetzung
Funktionalität oder Verfügbarkeit konfrontiert. Nicht zuletzt für
                                                                           für moderne Datenbankanwendungen. Neben Anwendungs-
deren Backend – ein meist relationales Datenbankmanagement-
                                                                           Design und Infrastrukturkomponenten wie Netzwerk oder
system – entsteht dadurch eine kontinuierlich steigende Kom-
                                                                           Anwendungs- beziehungsweise Web-Server wird sie maßgeblich
plexität und Workload, die es frühestmöglich proaktiv zu er-
                                                                           durch die Performance ihres Datenbank-Backends – wir beschrän-
kennen, einzuschätzen und effizient zu bewältigen gilt. Die dazu
                                                                           ken uns hier ausschließlich auf relationale Datenbankmanage-
nötigen Anwendungs- und Datenbankspezialisten sind jedoch
                                                                           mentsysteme (DBMS) – bestimmt [1]. Dabei ist die Datenbank-
aufgrund immer engerer Projektpläne, kürzerer Release-Zyklen
                                                                           Performance einer Anwendung selbst ebenfalls durch zahlreiche
und weiter wachsender Systemlandschaften stark ausgelastet,
                                                                           Faktoren beeinflusst. Während Hardware- und systemseitige
sodass für regelmäßige proaktive Expertenanalysen hinsichtlich
                                                                           Eigenschaften oftmals durch bestehende Infrastrukturen vor-
der Datenbank-Performance kaum Kapazität vorhanden ist.
                                                                           gegeben sind, können speziell das Datenbank-Design sowie die
Zur Auflösung dieses Dilemmas stellt dieser Beitrag ein                    anwendungsseitig implementierten Zugriffe mittels SQL weit-
Verfahren vor, mit dessen Hilfe frühzeitig auf Grundlage der               gehend frei gestaltet werden. Hinzu kommt als Einflussfaktor
Datenmodellierung und synthetischer Datenbankstatistiken Per-              noch die Beschaffenheit der zu speichernden/gespeicherten Daten,
formance-Analysen und -Vorhersagen für Anwendungen mit                     die sich in Menge und Verteilung ebenfalls stark auf die
relationalem Datenbank-Backend durchgeführt und deren                      Performance auswirkt.
Ergebnisse auf leicht zugängliche Weise visualisiert werden
können.                                                                    Das Datenbank-Design entwickelt sich über unterschiedlich
                                                                           abstrakte, aufeinander aufbauende Modellstrukturen vom konzep-
                                                                           tionellen hin zum physischen Datenmodell. Bereits bei der
Kategorien und Themenbeschreibung                                          Entwicklung dieser Modelle können „Designfehler“ wie beispiels-
Data Models and Database Design, Database Performance                      weise fehlende oder „übertriebene“ Normalisierungen gravierende
                                                                           Auswirkungen auf die späteren Antwortzeiten des Datenbank-
Allgemeine Bestimmungen                                                    systems haben. Der Grad an Normalisierung selbst ist jedoch nur
Performance, Design                                                        als vager Anhaltspunkt für die Performance von Datenbank-
                                                                           systemen anzusehen, der sich ab einem gewissen Maß auch
                                                                           negativ auswirken kann. Eine einfache Metrik zur Beurteilung der
Schlüsselwörter                                                            Qualität des Datenbank-Designs bezüglich der zu erwartenden
Performance, Proaktivität, Statistiken, relationale Datenbanken,           Performance (in Abhängigkeit anderer Einflussfaktoren, wie etwa
Modellierung, UML, Anwendungsentwicklung                                   der Workload) existiert nach vorhandenem Kenntnisstand nicht.
                                                                           Etwas abweichend dazu verhält es sich mit dem Einfluss der
                                                                           Workload – repräsentiert als Menge von SQL-Statements und der
                                                                           Häufigkeit ihrer Ausführung, die von der Anwendung an das
                                                                           Datenbanksystem zum Zugriff auf dort gespeicherte Daten
                                                                           abgesetzt wird. Moderne DBMS besitzen einen kostenbasierten
 Copyright © by the paper’s authors. Copying permitted only                Optimierer zur Optimierung eingehender Statements. Dieser
 for private and academic purposes.                                        berechnet mögliche Ausführungspläne und wählt unter Zu-
 In: G. Specht, H. Gamper, F. Klan (eds.): Proceedings of the 26 GI-       hilfenahme von gesammelten Objekt-Statistiken den günstigsten
 Workshop on Foundations of Databases (Grundlagen von                      Ausführungsplan zur Abarbeitung eines SQL-Statements aus.
 Datenbanken),                                                             Mittels DBMS-internen Mechanismen – im Folgenden als
 21.10.2014 - 24.10.2014, Bozen, Italy, published at http://ceur-ws.org.
EXPLAIN-Mechanismen bezeichnet – besteht die Möglichkeit,            netzwerks. Ein Überblick dazu findet sich in [3]. Demnach zeigt
noch vor der eigentlichen Ausführung von Statements den vom          sich für all diese Konzepte ein eher wissenschaftlicher Fokus und
Optimierer bestimmten optimalen Ausführungsplan ermitteln und        eine damit einhergehende weitgehend unerprobte Übertragbarkeit
ausgeben zu lassen. Zusätzlich umfasst das EXPLAIN-Ergebnis          auf die Praxis. So fehlen Studien zur Integration in praxisnahe
eine Abschätzung der zur Abarbeitung des Ausführungsplans            (Entwicklungs-)Prozesse, zur Benutzerfreundlichkeit sowie zum
erwarteten Zugriffskosten bezüglich der CPU-und I/O-Zeit –           Kosten-Nutzen-Verhältnis der notwendigen Maßnahmen. Ein
fortan als Kosten bezeichnet. Anhand dieser Informationen            damit einhergehendes Defizit ist zusätzlich der mangelnde Tool-
können bereits frühzeitig in Hinblick auf die Datenbank-             support. Das in Kapitel 4 vorgestellte Konzept verfolgt diesbe-
Performance (häufige) teure Zugriffe erkannt und gegebenenfalls      züglich einen davon abweichenden Ansatz. Es baut direkt auf
optimiert werden. Voraussetzung für dieses Vorgehen ist aller-       etablierten modellbasierten Praxisabläufen bei der Entwicklung
dings, dass dem DBMS zur Berechnung der Ausführungspläne             von Datenbankanwendungen auf (vgl. Kapitel 3). Insbesondere
repräsentative Datenbank-Statistiken vorliegen, was insbeson-        durch die Verwendung von standardisierten UML-Erweiterungs-
dere für neue Datenbankanwendungen nicht der Fall ist.               mechanismen integriert es sich auch Tool-seitig nahtlos in
                                                                     bestehende UML-unterstützende Infrastrukturen.
Auf der anderen Seite sehen sich sowohl Anwendungsentwickler-
beziehungsweise -designerteams als auch Datenbankspezialisten        Die Methodik der synthetischen Statistiken – also dem künstli-
mit immer komplexeren Anforderungen und Aufgaben konfron-            chen Erstellen sowie Manipulieren von Datenbank-Statistiken –
tiert. Kapazitäten für umfangreiche Performance-Analysen oder        ist neben dem in Kapitel 4 vorgestellten Ansatz wesentlicher
auch nur die Aneignung des dafür nötigen Wissens sind oft nicht      Bestandteil von [4]. Sie wird zum einen verwendet, um Statistiken
gegeben. Nicht zuletzt deshalb geraten proaktive Performance-        aus Produktionsumgebungen in eine Testumgebung zu trans-
Analysen verglichen mit beispielsweise funktionalen Tests ver-       ferieren. Zum anderen sieht der Ansatz aber auch die gezielte
mehrt aus dem Fokus.                                                 manuelle Veränderung der Statistiken vor, um mögliche dadurch
                                                                     entstehende Änderungen in den Ausführungsplänen und den zu
Das im vorliegenden Beitrag vorgestellte modellbasierte Konzept      deren Abarbeitung benötigten Kosten mithilfe anschließender
setzt an diesen beiden Problemen an und stellt Mechanismen vor,      EXPLAIN-Analysen feststellen zu können. Dies kann beispiels-
um auf einfache Art und Weise eine repräsentative proaktive          weise bezogen auf Statistiken zur Datenmenge dafür genutzt
Analyse der Datenbank-Performance zu ermöglichen. Nachdem in         werden, um Zugriffe auf eine (noch) kleine Tabelle mit wenigen
Kapitel 2 eine Abgrenzung zu alternativen/verwandten Ansätzen        Datensätzen bereits so zu simulieren, als ob diese eine enorme
gegeben wird, rückt Kapitel 3 den Entwicklungsprozess einer          Menge an Daten umfasst. Weitere Einbettungen in den Entwick-
Datenbank-Anwendung in den Fokus. Kapitel 4 beschäftigt sich         lungsprozess von Datenbankanwendungen sieht [4] gegenüber
mit dem entwickelten proaktiven Ansatz und stellt wesentliche        dem hier vorgestellten Ansatz allerdings nicht vor.
Schritte/Komponenten vor. Abschließend fasst Kapitel 5 den
                                                                     Ein weiterer Ansatzpunkt zur Performance-Analyse und -Optimie-
Beitrag zusammen.
                                                                     rung existiert im Konzept des autonomen Datenbank-Tunings
                                                                     [5][6],[7] – also dem fortlaufenden Optimieren des physischen
2. VERWANDTE ARBEITEN                                                Designs von bereits bestehenden Datenbanken durch das DBMS
Das Ziel des im Beitrag vorgestellten proaktiven Ansatzes zur        selbst. Ein autonomes System erkennt anhand von erlerntem
Performance-Analyse und -Vorhersage von Datenbankanwendun-           Wissen potentielle Probleme und leitet passende Optimierungs-
gen ist die frühzeitige Erkennung von potentiellen Perfor-           maßnahmen ein, bevor sich daraus negative Auswirkungen
mance-Problemen auf Basis einer möglichst effizienten, leicht        ergeben. Dazu zählt beispielsweise die autonome Durchführung
verständlichen Methodik. Dies verfolgt auch der Ansatz von [2],      einer Reorganisierung von Daten, um fortwährend steigenden
dessen Grundprinzip – Informationen über Daten und Datenzu-          Zugriffszeiten entgegenzuwirken. Ähnlich können auch die
griffe, die aus der Anforderungsanalyse einer Anwendung bekannt      mittlerweile je System vielseitig vorhandenen Tuning-Advisor wie
sind, zur frühzeitigen Optimierung zu nutzen – sich auch im          beispielsweise [8] und [9] angesehen werden, die zwar nicht auto-
vorliegenden Beitrag wiederfindet. Dabei gelangt [2] durch eine      matisch optimierend ins System eingreifen, dem Administrator
eigene, dem Datenbank-Optimierer nachempfundene Logik und            aber Empfehlungen zu sinnvoll durchzuführenden Aktionen
dem verwendeten Modell des offenen Warteschlangennetzwerks           geben. Sowohl das autonome Tuning als auch die Tuning-Advisor
frühzeitig zu Kostenabschätzungen bezüglich der Datenbank-           sind nicht als Alternative zu dem im vorliegenden Beitrag
Performance. Das in Kapitel 4 des vorliegenden Beitrags vorge-       vorgestellten Ansatz einzuordnen. Vielmehr können sich diese
stellte Konzept nutzt dagegen synthetisch erzeugte Statistiken und   Konzepte ergänzen, indem die Anwendungsentwicklung auf Basis
datenbankinterne EXPLAIN-Mechanismen, um eine kostenmäßi-            des in Kapitel 4 vorgestellten Konzepts erfolgt und für die spätere
ge Performance-Abschätzung zu erhalten. Damit berücksichtigt es      Anwendungsadministration/ -evolution verschiedene Tuning-
stets sowohl aktuelle als auch zukünftige Spezifika einzelner        Advisor und die Mechanismen des autonomen Tunings zum Ein-
Datenbank-Optimierer und bleibt entgegen [2] von deren interner      satz kommen.
Berechnungslogik unabhängig. Ein weiterer Unterschied zwischen
beiden Ansätzen besteht in der Präsentation der Analyse-             3. ENTWICKLUNGSPROZESS VON
ergebnisse. Während sich [2] auf tabellarische Darstellungen
beschränkt, nutzt das im Beitrag vorstellte Konzept eine auf der     DATENBANKANWENDUNGEN
Grundlage der Unified Modeling Language (UML) visualisierte          Der Entwicklungsprozess von Anwendungen lässt sich anhand
Darstellungsform.                                                    des System Development Lifecycle (SDLC) beschreiben und in
                                                                     verschiedene Phasen von der Analyse der Anforderungen bis hin
Ähnlich wie [2] basieren auch weitere Ansätze zur Performance-       zum Betrieb/zur Wartung der fertigen Software gliedern [1].
Analyse und -Evaluation auf dem Modell des Warteschlangen-
                                                                                                                 Project Manager

                                         Analyse                                       Analyse                   Business Analyst

                    Datenbank                                                                                          Software
                                       Datenbank       Daten-                                        Reports           Designer/
                    Designer/                                                        Detail Design
                                        Design         modelle                                       Prozesse          Architekt
                    Architekt

                                     Implementierung                                                                   Program-
                                                                                   Implementierung                       mierer
                                        und Laden          Erstellen                                     Prototyping
                                                            Laden
                                        Test und            Tuning                    Test und           Debugging      Tester
                                       Auswertung                                    Auswertung


                     Datenbank                                                                                       System-
                     Administrator                                     Betrieb                                  Administrator


                                            Datenbank-                                    Wartung der
                                             Wartung                                      Anwendung


                        Abbildung 1: Phasen und Akteure im Database und Software Development Lifecycle
                                                     (DBLC und SDLC)

Zusätzlich zur reinen Anwendungsentwicklung sind weitere                         der Entwicklungsprozess von Datenbankanwendungen auf die in
Abläufe zur Planung und Bereitstellung einer geeigneten Infra-                   Abbildung 2 visualisierten Aufgaben. Anhand der analysierten
struktur nötig. Für Datenbankanwendungen wäre das unter ande-                    Anforderungen wird im Datenbank-Design ein konzeptionelles
rem der Entwicklungsprozess der Datenbank, welcher sich nach                     Datenmodell entwickelt, das anschließend hin zum physischen
[1] ebenfalls durch ein dem SDLC ähnliches Modell – dem Data-                    Datenmodell verfeinert wird. Da sich der Beitrag auf die in der
base Lifecycle (DBLC) – formalisieren lässt. Beide Entwicklungs-                 Praxis vorherrschenden relationalen DBMS beschränkt, wird auf
prozesse verlaufen zeitlich parallel und werden insbesondere in                  das in der Theorie gebräuchliche Zwischenprodukt des logischen
größeren Unternehmen/Projekten durch verschiedene Akteure                        Datenmodells (relationale Abbildung) verzichtet.
realisiert. Auf Grundlage von [1] liefert Abbildung 1 eine Über-
sicht dazu. Sie visualisiert parallel ablaufende Entwicklungspha-                Nachdem die Design-Phase abgeschlossen ist, beginnt die
sen und eine Auswahl an zuständigen Akteuren, deren konkrete                     Implementierung. Datenbankseitig wird dabei das physische
Zusammensetzung/Aufgabenverteilung aber stark abhängig von                       Datenmodell mittels Data Definition Language (DDL) in ein
der Projektgröße und dem Projektteam ist. Wichtig sind hier be-                  Datenbankschema innerhalb eines installierten und geeignet
sonders zwei Erkenntnisse. Zum einen finden ähnliche Entwick-                    konfigurierten DBMS umgesetzt und möglicherweise vorhandene
lungsprozesse bei Anwendung und Datenbank parallel statt – in                    Testdaten geladen. Anwendungsseitig erfolgt parallel dazu die
etwa das Anwendungsdesign und das Datenbankdesign. Zum                           Entwicklung von SQL-Statements zum Zugriff auf die Datenbank
anderen können sehr viele Akteure am gesamten Entwicklungs-                      sowie die Implementierung der Anwendung selbst. Nach
prozess beteiligt sein, sodass Designer, Programmierer, Tester und               Fertigstellung einzelner Module finden mithilfe des Entwick-
Administratoren in der Regel disjunkte Personenkreise bilden.                    lungs- und Qualitätssicherungssystems kontinuierliche Tests
                                                                                 statt, die sich allerdings anfangs auf die Prüfung funktionaler
    Analyse       Konzeptionelles                                                Korrektheit beschränken. Performance-Untersuchungen, insbe-
                   Datenmodell Physisches                                        sondere bezogen auf die Datenbankzugriffe, erfolgen in der Regel
                                  Datenmodell
                                                                                 erst gezielt zum Abschluss der Implementierungsphase mittels
    Design
                                                                                 aufwändig vorzubereitender und im Qualitätssicherungssystem
                                                                                 durchzuführender Lasttests.
     Impl.
                                                             SQL
                                                                                 Die Folgen aus diesem Vorgehen für die Erkennung und Behand-
     Test                                    Entwicklungs- SQL-                  lung von Performance-Problemen sind mitunter gravierend. Eng-
                                                system Statements
                                                                                 pässe werden erst spät (im Betrieb) bemerkt und sind aufgrund
                                 Qualitäts-
    Betrieb                     sicherungs-                                      des fortgeschrittenen Entwicklungsprozesses nur mit hohem
                   Produktions-    system                                        Aufwand zu korrigieren. Basieren sie gar auf unvorteilhaften
   Wartung            system                                                     Design-Entscheidungen beispielsweise bezogen auf die Daten-
                                                                                 modellierung, ist eine nachträgliche Korrektur aufgrund zahlrei-
Abbildung 2: Performance-relevante Entwicklungsschritte                          cher Abhängigkeiten (Anwendungslogik, SQL-Statements, Test-
                                                                                 datenbestände, etc.), getrennten Zuständigkeiten und in der Regel
Aus dem Blickwinkel der Datenbank-Performance und der darauf                     engen Projektzeitplänen nahezu ausgeschlossen. Erfahrungen aus
einwirkenden bereits genannten Einflussfaktoren reduziert sich                   dem Arbeitsumfeld des Autors haben dies wiederholt bestätigt.
                  Performance
                   Indikatoren
                                                       Abbildung und Statistikerzeugung

                 Konzeptionelles 1.                                   2.
                  Datenmodell        Physisches                                                                    Kosten
                                    Datenmodell                                                   EXPLAIN                              EP2
                                                                                                            EP1
                                                                                3.                  4.
                                                                   SQL
                                              Entwicklungs-
                                                                                     Testsystem                   Performance-Modell
                                                 system             SQL-
                                  Qualitäts-
                                                                 Statements
                 Produktions- sicherungs-system
                    system

                     Abbildung 3: Ansatz zur proaktiven modellbasierten Performance-Analyse und -Vorhersage

                                                                              bei Anwendungsweiterentwicklungen weitgehend vorliegen, exis-
4. PROAKTIVE MODELLBASIERTE                                                   tieren für neu zu entwickelnde Anwendungen im Normalfall keine
PERFORMANCE-ANALYSE                                                           repräsentativen Datenbestände. Somit fehlen auch geeignete
Alternativ zur Performance-Analyse mittels Lasttests (vgl. Kapitel            Datenbankstatistiken zur Grundlage für die EXPLAIN-Auswer-
3) bieten sich zur Kontrolle der SQL-Performance die eingangs                 tungen. Die Folge sind Ausführungspläne und Kostenabschätzun-
erwähnten EXPLAIN-Mechanismen an. Mit deren Hilfe lassen                      gen, die mit denen eines späteren produktiven Einsatzes der State-
sich bei vorliegendem physischen Datenbank-Design (inklusive                  ments oftmals nur wenig gemeinsam haben und für eine proaktive
Indexe, etc.) bereits in frühen Abschnitten der Implementierungs-             Performance-Analyse somit (nahezu) unverwertbar sind.
phase Auswertungen zu Ausführungsplänen und geschätzten                       Der im folgenden Kapitel vorgestellte proaktive modellbasierte
Kosten für entwickelte SQL-Statements durchführen. Auf diese                  Ansatz zur Performance-Analyse und -Vorhersage greift beide
Weise gewonnene Erkenntnisse können vom Designer/Program-                     Probleme auf: die fehlende repräsentative Datenbasis für Daten-
mierer direkt genutzt werden, um Optimierungen in Hinblick auf                bankstatistiken und die mangelnde Expertise zur Ausführungs-
die quasi grade entworfenen/implementierten SQL-Statements                    planbewertung durch Designer/Programmierer. Dabei sieht dieser
durchzuführen. Durch die gegebene zeitliche Nähe zum Anwen-                   Ansatz zur Bereitstellung geeigneter Datenbankstatistiken ein
dungs- und Datenbank-Design sind auch Performance-Optimie-                    synthetisches Erzeugen anhand von Performance-Indikatoren vor.
rungen auf Basis von Datenmodellanpassungen (Normalisie-                      Das Problem der mangelnden Expertise wird durch eine einfache
rung/Denormalisierung) ohne größeren Aufwand möglich.                         modellbasierte Darstellung von gewonnenen EXPLAIN-Ergeb-
Das beschriebene Vorgehen hat zwar den Vorteil, dass mögliche                 nissen adressiert. Wie diese gestaltet ist und mit den Performance-
Performance-Probleme schon von den Akteuren (Designer/Pro-                    Indikatoren zusammenwirkt verdeutlichen die weiteren Ausfüh-
grammierer) erkannt werden können, die diese durch Design-                    rungen des Kapitels anhand Abbildung 3.
Änderungen am effektivsten zu lösen wissen. Demgegenüber
erfordern die EXPLAIN-Analysen und das Verständnis der Aus-                   4.1 Performance-Indikatoren im Datenmodell
führungspläne einen Grad an Expertise, den Designer/Program-                  Als Performance-Indikatoren bezeichnet die vorliegende Arbeit
mierer in der Regel nicht besitzen. Ein Datenbank Administrator               ausgewählte Metadaten zu Entitäten und deren Attributen
(DBA), der über diese verfügt, ist wiederum von den fachlichen                (beziehungsweise zu Tabellen und deren Spalten), die Aufschluss
Anforderungen zu distanziert, sodass er zwar mögliche Perfor-                 über die erwarteten realen Datenbestände geben und in Zusam-
mance-Ausreißer erkennen, nicht aber fachlich bewerten kann.                  menhang mit dem Datenbank-Design und der Infrastruktur erste
Führt eine Anwendung beispielsweise einmal monatlich eine sehr                Rückschlüsse auf die zukünftige Datenbank-Performance erlau-
komplexe Auswertung mithilfe eines entsprechend Laufzeit-                     ben. Dazu zählen Informationen zu den erwarteten Datenmengen
intensiven SQL-Statements durch, dann würde dem DBA diese                     wie in etwa die erwartete Anzahl an Zeilen pro Tabelle und
Abfrage bei EXPLAIN-Analysen als kritisch erscheinen. Denn er                 Kennzahlen zur Datenverteilung – beispielsweise in Form von
weiß weder, dass damit ein fachlich aufwändiger Prozess                       Wertebereichsangaben, Einzelwertwahrscheinlichkeiten oder der
durchgeführt wird, noch dass es sich dabei um eine einmalig pro               Kardinalität pro Spalte. Viele dieser Informationen sind Teil des
Monat auszuführende Abfrage handelt. Um sich als DBA in einer                 Ergebnisses der Anforderungsanalyse und somit frühzeitig im
Infrastruktur von nicht selten mehr als 100 unterschiedlichen                 SDLC bekannt und vom Business Analyst erfasst worden. Dabei
Anwendungen über die fachlichen Anforderungen und speziellen                  reicht die Dokumentation von rein textuellen Beschreibungen bis
Prozesse jeder einzelnen im Detail zu informieren beziehungs-                 hin zu tief strukturierten Darstellungen. Eine einheitlich stan-
weise um sich als Designer/Programmierer das nötige Knowhow                   dardisierte Form zur Erfassung von Performance-Indikatoren im
zur Ausführungsplanbewertung aufzubauen, ist personelle                       DBLC existiert jedoch bislang nicht, wodurch die Metadaten
Kapazität vonnöten, die in der Regel nicht verfügbar ist.                     kaum bis gar nicht in den weiteren Entwicklungsprozess ein-
                                                                              fließen.
Ein anderes Problem, dass sich in Zusammenhang mit frühzei-
tigen EXPLAIN-Analysen zeigt, begründet sich in dem dritten                   In der Praxis basiert die Datenmodellierung ähnlich wie weite
zuvor genannten Performance-Faktor: den Daten. Während diese                  Teile der Anwendungsmodellierung auf der Sprache UML. Dabei
wurde diese ursprünglich nicht zur Abbildung von Daten-             der Designer/Programmierer beim Modellieren oder dem Ent-
strukturen im Sinn einer Entity-Relationship-Modellierung kon-      wickeln von SQL-Statements auf relationale Weise. Die im vorlie-
zipiert, sodass die Verbindung beider Welten – und damit die        genden Ansatz als Performance-Modell bezeichnete vereinfachte
Modellierung von Anwendung und Datenstrukturen mithilfe einer       Präsentation von Ausführungsplänen versucht, diese Diskrepanz
gemeinsamen Sprache in einem gemeinsamen Tool – erst durch          aufzulösen.
Ansätze wie [10] oder auch den Entwurf zum IMM Standard der
OMG [11] geschaffen wurde. Die Voraussetzung dafür bildet           Das Performance-Modell basiert auf dem physischen Datenmo-
jeweils die UML-Profil-Spezifikation, die es ermöglicht, beste-     dell und damit auf einer dem Designer/Programmierer bekannten
hende UML-Objekte über Neu-Stereotypisierungen zu erweitern.        Darstellungsform. Zusätzlich umfasst es die für diesen Personen-
                                                                    kreis wesentlichen Informationen aus den EXPLAIN-Ergebnissen.
Um die zuvor genannten Performance-Indikatoren für den weite-       Dazu zählen die vom DBMS abgeschätzten Kosten für die Aus-
ren Entwicklungsprozess nutzbar zu machen und sie innerhalb         führung des gesamten Statements sowie wichtiger Operatoren wie
bestehender Infrastrukturen/Tool-Landschaften standardisiert zu     Tabellen- beziehungsweise Indexzugriffe oder Tabellenverknü-
erfassen, kann ebenfalls der UML-Profil-Mechanismus genutzt         pfungen mittels Join – jeweils skaliert um die erwartete Aus-
werden. So ließe sich beispielsweise mithilfe eines geeigneten      führungshäufigkeit des Statements. Weitere Detailinformationen
Profils wie in Abbildung 3 in 1. schematisch angedeutet aus einem   innerhalb der Ausführungspläne wie beispielsweise die konkrete
UML-Objekt „entity“ ein neues Objekt „entity_extended“ ablei-       Abarbeitungsreihenfolge einzelner Operatoren oder Angaben zu
ten, das in einem zusätzlichen Merkmal „cardinality“ Infor-         abgeschätzten Prädikat-Selektivitäten werden vom Modell zum
mationen über die produktiv erwartete Datenmenge zu einer           Zweck der Einfachheit und Verständlichkeit bewusst vernach-
Entität/Tabelle aufnehmen kann.                                     lässigt. Für die gleichzeitige Analyse mehrerer Statements erfolgt
                                                                    eine Aggregation der jeweils abgeschätzten Kosten auf Objekt-
4.2 Synthetische Datenbankstatistiken                               ebene.
Eines der eingangs aufgezeigten Hindernisse für proaktive Perfor-   Zentrale Komponente im Performance-Modell ist eine ebenfalls
mance-Analysen beziehungsweise -Vorhersagen bestand in der          dem physischen Datenmodell angelehnte Diagrammdarstellung.
fehlenden repräsentativen Datenbasis für Datenbank-Statisti-        Mithilfe farblicher Hervorhebung und geeigneter Bewertungs-
ken. Diese Statistiken werden im Normalfall vom DBMS anhand         metriken sollen sämtliche Objekte gemäß den vom DBMS
der gespeicherten Daten selbst gesammelt. Dem entgegen verfolgt     geschätzten Zugriffskosten zur Abarbeitung der Workload
das hier vorgestellte Konzept den Ansatz, dem DBMS Statistiken      klassifiziert und visualisiert werden. Auf diese Weise kann ein
vorzugeben, ohne dazu datenbankseitig repräsentative Datenbe-       Designer/Programmierer frühzeitig Auskunft über aus Perfor-
stände vorhalten zu müssen. Dafür bieten zwar die wenigsten         mance-Perspektive zu optimierende Bereiche im Datenbank-
DBMS vordefinierte Schnittstellen an, allerdings sind sämtliche     schema beziehungsweise kritische, alternativ zu konzipierende
Statistik-Informationen in der Regel innerhalb DBMS-interner        SQL-Statements erhalten. Abbildung 3 veranschaulicht exempla-
manipulierbarer Tabellen gespeichert, wie dies beispielswiese       risch ein visualisiertes Performance-Modell für zwei Statements/
auch bei DB2 oder Oracle der Fall ist [12].                         Ausführungspläne (EP). Während der untere Bereich weitgehend
                                                                    grün/unkritisch markiert ist, befinden sich im oberen Diagramm-
Datenbankstatistiken enthalten Informationen über Datenmengen
                                                                    teil mögliche Performance-kritische rot gekennzeichnete Zugriffe,
und Datenverteilungen sowie Kennzahlen zur physischen Spei-
                                                                    die es gezielt zu untersuchen und an geeigneter Stelle (SQL-State-
cherung wie beispielsweise die Anzahl der verwendeten Daten-
                                                                    ment, Datenbank-Design) zu optimieren gilt (vgl. gestrichelte
bankseiten pro Tabelle. Während erstere inhaltlich den zuvor
                                                                    Pfeile in Abbildung 3).
beschriebenen Performance-Indikatoren entsprechen, sind die
Statistikdaten zur physischen Speicherung interne DBMS-abhän-       Die technische Realisierung des Performance-Modells sowie der
gige Größen. Mithilfe geeigneter, von den DBMS-Herstellern zur      dazugehörigen Diagrammdarstellung erfolgt analog zur Erfassung
Unterstützung beim Datenbank-Design bereitgestellter Abschät-       der Performance-Indikatoren über den UML-Profil-Mechanismus,
zungsvorschriften lassen sich aber auch diese Kennzahlen auf        wodurch auch in diesem Punkt die Kompatibilität des vorge-
Grundlage der Performance-Indikatoren approximieren. Somit ist      stellten Ansatzes zu bestehenden Tool-Infrastrukturen gewähr-
es wie in Abbildung 3 in 2. gezeigt möglich, anhand geeignet        leistet ist.
formalisierter Performance-Indikatoren frühzeitig im SDLC/
DBLC repräsentative Datenbankstatistiken künstlich zu erzeugen.
                                                                    4.4 Ablauf einer Analyse/Vorhersage
                                                                    Für den Designer/Programmierer sieht der in Abbildung 3
4.3 EXPLAIN und Performance-Modell                                  vorgestellte proaktive Ansatz folgende Vorgehensweise vor.
Auf Grundlage von synthetischen Datenbankstatistiken können         Nachdem nach 1. ein Datenbank-Design-Entwurf fertiggestellt ist,
wie in Abbildung 3 in 3. und 4. zu sehen, mittels der vom DBMS      initiiert er in 2. einen Automatismus zur Abbildung des Designs
bereitgestellten EXPLAIN-Funktionalität, der SQL-Workload           in ein Datenbank-Schema sowie zur Erstellung von synthetischen
und dem aus dem physischen Datenmodell ableitbaren Daten-           Datenbank-Statistiken anhand der von ihm modellierten Perfor-
bankschema proaktive Performance-Vorhersagen durchgeführt           mance-Indikatoren. Mithilfe einer weiteren Routine startet der
werden. Die resultierenden, teils komplexen Ausführungspläne        Designer/Programmierer in 3. und 4. anschließend einen Simu-
lassen sich allerdings nur mit ausreichend Expertise und vor-       lationsprozess, der auf Basis der EXPLAIN-Mechanismen Perfor-
handenen personellen Kapazitäten angemessen auswerten, sodass       mance-Vorhersagen für eine gegebene Workload erstellt und diese
diese Problematik vorläufig weiterbesteht. Eine Hauptursache, die   als Performance-Modell aufbereitet. Von dort aus informiert er
das Verständnis von Ausführungsplänen erschwert, ist ihre           sich mithilfe der Diagrammdarstellung über mögliche kritische
hierarchische Darstellung als Zugriffsbaum. Demgegenüber denkt      Zugriffe, die er daraufhin gezielt analysiert und optimiert.
5. ZUSAMMENFASSUNG                                                     Ansatzes entgegensteht. Somit sind alternative Varianten zur
Datenbank-Performance ist ein wichtiger, oftmals jedoch vernach-       Beschaffung der Workload für den Analyseprozess zu
lässigter Faktor in der Anwendungsentwicklung. Durch moderne           untersuchen und abzuwägen.
Anforderungen und dazu implementierte Anwendungen sehen
sich speziell deren Datenbank-Backends mit kontinuierlich              7. LITERATUR
wachsenden Herausforderungen insbesondere betreffend der               [1] C. Coronel, S. Morris, P. Rob. Database Systems: Design,
Performance konfrontiert. Diese können nur bewältigt werden,               Implementation, and Management, Course Technology, 10.
wenn das Thema Datenbank-Performance intensiver betrachtet                 Auflage, 2011.
und durch proaktive Analysen (beispielsweise mittels EXPLAIN-
                                                                       [2] S. Salza, M. Renzetti. A Modeling Tool for Workload
Mechanismen) kontinuierlich verfolgt wird. Doch auch dann sind
                                                                           Analysis and Performance Tuning of Parallel Database
einzelne Hindernisse unvermeidlich: fehlende repräsentative
                                                                           Applications, Proceedings in ADBIS'97, 09.1997
Daten(-mengen) und Expertise/Kapazitäten zur Analyse.
                                                                           http://www.bcs.org/upload/pdf/ewic_ad97_paper38.pdf
Der vorliegende Beitrag präsentiert zur Lösung dieser Probleme         [3] R. Osman, W. J. Knottenbelt. Database system performance
einen modellbasierten Ansatz, der auf Basis synthetisch erzeugter          evaluation models: A survey, Artikel in Performance
Statistiken proaktive Performance-Analysen sowie -Vorhersagen              Evaluation, Elsevier Verlag, 10.2012
erlaubt und die daraus gewonnenen Ergebnisse in einer einfach              http://dx.doi.org/10.1016/j.peva.2012.05.006
verständlichen Form visualisiert. Die technologische Grundlage
dafür bietet die in der Praxis vorherrschende Modellierungs-           [4] Tata Consultancy Services. System and method for SQL
sprache UML mit ihrer UML-Profil-Spezifikation. Sie erlaubt es             performance assurance services, Internationales Patent
das hier vorgestellte Konzept und die dazu benötigten Kom-                 PCT/IN2011/000348, 11.2011
ponenten mit vorhandenen technischen Mitteln abzubilden und                http://dx.doi.org/10.1016/j.peva.2012.05.006
nahtlos in bestehende UML-Infrastrukturen zu integrieren.              [5] D. Wiese. Gewinnung, Verwaltung und Anwendung von
                                                                           Performance-Daten zur Unterstützung des autonomen
6. AUSBLICK                                                                Datenbank-Tuning, Dissertation, Fakultät für Mathematik
Bei dem im Beitrag vorgestellten Konzept handelt es sich um                und Informatik, Friedrich-Schiller-Universität Jena, 05.2011.
einen auf Basis wiederkehrender praktischer Problemstellungen              http://www.informatik.uni-jena.de/dbis/alumni/wiese/pubs/D
und den daraus gewonnenen Erfahrungen konstruierten Ansatz.                issertation__David_Wiese.pdf
Während die technische Umsetzbarkeit einzelner Teilaspekte wie         [6] S. Chaudhuri, V. Narasayya. A Self-Tuning Database
etwa die Erfassung von Performance-Indikatoren oder die Kon-               Systems: A Decade of Progress, Proceedings in VLDB'07,
struktion des Performance-Modells auf Basis von UML-Profilen               09.2007
bereits geprüft wurde, steht eine prototypische Implementierung            http://research.microsoft.com/pubs/76506/vldb07-10yr.pdf
des gesamten Prozesses zur Performance-Analyse noch aus.
                                                                       [7] N. Bruno, S. Chaudhuri. An Online Approach to Physical
Zuvor sind weitere Detailbetrachtungen nötig. So ist beispiels-            Design Tuning, Proceedings in ICDE'07, 04.2007
weise zu klären, in welchem Umfang Performance-Indikatoren                 http://research.microsoft.com/pubs/74112/continuous.pdf
im Datenmodell vom Analyst/Designer sinnvoll erfasst werden
                                                                       [8] Oracle Corporation. Oracle Database 2 Day DBA 12c
sollten. Dabei ist ein Kompromiss zwischen maximalem
                                                                           Release 1 (12.1) – Monitoring and Tuning the Database,
Detailgrad und minimal nötigem Informationsgehalt anzustreben,
                                                                           2013.
sodass der Aufwand zur Angabe von Performance-Indikatoren
                                                                           http://docs.oracle.com/cd/E16655_01/server.121/e17643/mo
möglichst gering ist, mit deren Hilfe aber dennoch eine
                                                                           ntune.htm#ADMQS103
repräsentative Performance-Vorhersage ermöglicht wird.
                                                                       [9] Microsoft Corporation. SQL Server 2005 – Database Engine
Weiterhin gilt es, eine geeignete Metrik zur Bewertung/Katego-             Tuning Advisor (DTA) in SQL Server 2005, Technischer
risierung der Analyseergebnisse zu entwickeln. Hier steht die              Artikel, 2006.
Frage im Vordergrund, wann ein Zugriff anhand seiner Kosten als            http://download.microsoft.com/download/4/7/a/47a548b9-
schlecht und wann er als gut zu bewerten ist. Ein teurer Zugriff ist       249e-484c-abd7-29f31282b04d/SQL2005DTA.doc
nicht zwangsweise ein schlechter, wenn er beispielsweise zur
Realisierung einer komplexen Funktionalität verwendet wird.            [10] C.-M. Lo. A Study of Applying a Model-Driven Approach to
                                                                            the Development of Database Applications, Dissertation,
Zuletzt sei noch die Erfassung beziehungsweise Beschaffung der              Department of Information Management, National Taiwan
für die EXPLAIN-Analysen notwendigen Workload erwähnt.                      University of Science and Technology, 06.2012.
Diese muss dem vorgestellten proaktiven Analyseprozess                 [11] Object Management Group. Information Management
zugänglich gemacht werden, um anhand des beschriebenen                      Metamodel (IMM) Specification Draft Version 8.0,
Konzepts frühzeitige Performance-Untersuchungen durchführen                 Spezifikationsentwurf, 03.2009.
zu können. Im einfachsten Fall könnte angenommen werden, dass               http://www.omgwiki.org/imm/doku.php
sämtliche SQL-Statements (inklusive ihrer Ausführungshäu-
figkeit) vom Designer/Programmierer ebenfalls im Datenmodell           [12] N. Burgold, M. Gerstmann, F. Leis. Statistiken in
beispielsweise als zusätzliche Merkmale von Methoden in der                 relationalen DBMSen und Möglichkeiten zu deren
UML-Klassenmodellierung zu erfassen und kontinuierlich zu                   synthetischer Erzeugung, Projektarbeit, Fakultät für
pflegen wären. Dies wäre jedoch ein sehr aufwändiges Verfahren,             Mathematik und Informatik, Friedrich-Schiller-Universität
das der gewünschten hohen Praxistauglichkeit des proaktiven                 Jena, 05.2014.