Praktikum 3: Pu erverwaltung - Fachbereich Informatik - Hochschule ...
Praktikum 3: Pu erverwaltung - Fachbereich Informatik - Hochschule ...
Praktikum 3: Pu erverwaltung - Fachbereich Informatik - Hochschule ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Hochschule</strong> Darmstadt, <strong>Fachbereich</strong> <strong>Informatik</strong><br />
Prof. Dr. U. Störl<br />
Architektur von Datenbanksystemen<br />
SoSe 2013<br />
<strong>Praktikum</strong> 3: <strong>Pu</strong><strong>erverwaltung</strong><br />
Ziel des <strong>Praktikum</strong>s<br />
Ziel des <strong>Praktikum</strong>s ist es, für verschiedene Datenbankanwendungsprole geeignete <strong>Pu</strong>ergröÿen<br />
zu ermitteln. Das entsprechende Szenario in der Praxis wäre, dass Performance-Probleme<br />
bei einer Anwendung existieren. Neben anderen Maÿnahmen wie Analyse der Anfragen und<br />
Anpassen der gewählten Indexe (diesem Thema werden wir uns in späteren Praktikas widmen)<br />
soll hier die Analyse der <strong>Pu</strong>erdaten (d.h. der Buer Hit Ratio) und die daraus resultierende<br />
Auswahl einer geeigneten <strong>Pu</strong>ergröÿe betrachtet werden.<br />
Im letzten <strong>Praktikum</strong> wurden verschiedene Anwendungsprole betrachtet. Dabei konnten Sie<br />
beobachten, dass sowohl die Verteilung der zu lesenden Daten als auch die Anzahl der abgesetzten<br />
SQL-Statements und die Art der Statement-Programmierung Einuss auf die Performance<br />
des Lesens der Daten hat. Um den Einuss der Anzahl der abgesetzten SQL-Statements zu<br />
reduzieren, werden jetzt nur noch die Abschnittsgröÿen 100.000 und 10.000 betrachtet. Verwenden<br />
Sie auÿerdem nur noch die Varianten der Anfragen mit PreparedStatements. Wählen<br />
Sie sich eine der 4 Anfragen aus <strong>Praktikum</strong> 2, Aufgabe 2, aus. Mit dieser sind die Aufgaben im<br />
aktuellen <strong>Praktikum</strong> zu bearbeiten.<br />
Es werden in diesem <strong>Praktikum</strong> insgesamt 4 Szenarien betrachtet:<br />
1. Sequentielle Auswertung auf der kompletten Bestellungs-Tabelle in 100.000er Schritten.<br />
2. Wie in 1, jedoch werden 10.000er Schritte verwendet.<br />
3. Auswertung nur auf einem eingeschränkten Bereich der Bestellungstabelle, d.h. einem<br />
von Ihnen selbst gewählten 100.000 Abschnitt. Für Vergleichbarkeit der Laufzeiten mit 1<br />
ist die Anfrage genauso oft (wiederholt) auszuführen wie dort.<br />
4. Wie in 3, jedoch wird lediglich ein 10.000er Bereich verwendet.<br />
Ziel ist es jetzt, für die jeweiligen Anwendungsprole optimale <strong>Pu</strong>ergröÿen zu nden, d.h.,<br />
die Gröÿe des <strong>Pu</strong>ers so zu wählen, dass kein physischer Zugri auf die Daten im Dateisystem<br />
notwendig wird und die Anfragen ausschliesslich vom Datenbankpuer beantworten werden können.<br />
Ein einfaches Erhöhen des <strong>Pu</strong>ers auf die maximale Gröÿe gilt dabei als nicht optimal, da<br />
dadurch jegliche andere Ressourcen (Anwendungen etc.) ggf. mehr als nötig eingeschränkt werden<br />
bzw. dies bei realistischen Datenbankgröÿen von mehreren GB in der Praxis nicht möglich<br />
ist. Es ist jeweils das Minimum für die 4 Szenarien zu nden.<br />
Anmerkung: In der Realität kennen Sie natürlich den betroenen Anteil der Datenbank im<br />
Allgemeinen nicht vorher und müssen sich deshalb durch einen Mix von theoretischen Untersuchungen<br />
des Anwendungsprols und praktischer Analyse der Buer Hit Ratio an die optimale<br />
<strong>Pu</strong>ergröÿe heranarbeiten.<br />
Die Szenarien 3 und 4 können Sie sich in der Praxis so vorstellen, dass im Laufe der Zeit<br />
neue Bestellungen im System hinzugefügt werden. Bei der Auswertung werden jedoch nur<br />
1
<strong>Hochschule</strong> Darmstadt, <strong>Fachbereich</strong> <strong>Informatik</strong><br />
Prof. Dr. U. Störl<br />
Architektur von Datenbanksystemen<br />
SoSe 2013<br />
Bestellungen der letzten 14 Tage benötigt. Das Anfragefenster identiziert also nur einen Teil<br />
aller Bestellungen. Während das Anfragefester in der Praxis sich mit dem Fortschreiten der Zeit<br />
verschiebt, simulieren wir dies in unseren Aufgaben nicht und verwenden statische Daten und<br />
Anfragebereiche.<br />
Aufgabe 1 (Vorbereitung)<br />
Um Daten über die logischen und physischen Datenbankzugrie sammeln zu können, muss<br />
zunächst das Sammeln dieser Daten im sog. Snapshot Monitor aktiviert werden. Diese Einstellung<br />
kann über die Konguration des Datenbankmanagers (database manager, dbm) verändert<br />
werden:<br />
update dbm configuration using DFT_MON_BUFPOOL on 1<br />
Wichtig: Einige Änderungen der Konguration des Datenbankmanagers werden erst nach Beenden<br />
und Neustarten der DB2-Instanz (db2stop 2 bzw. db2start) aktiv.<br />
Auf die Statistik über die Zugrie im Datenbank-<strong>Pu</strong>er kann mit Hilfe des Befehls<br />
get snapshot for bufferpools on <br />
zugegrien werden.<br />
Hinweis: Achten Sie darauf, dass Sie wirklich die Daten des <strong>Pu</strong>ers IBMDEFAULTBP auswerten!<br />
Die wichtigsten Parameter zur Berechnung der Buer Hit Ratio sind die Angaben über die<br />
logischen und physischen Zugrie auf (Primär)daten bzw. Indexseiten 3 :<br />
pool_data_l_reads<br />
pool_data_p_reads<br />
pool_index_l_reads<br />
pool_index_p_reads<br />
Buer Pool Data Logical Reads<br />
Buer Pool Data Physical Reads<br />
Buer Pool Index Logical Reads<br />
Buer Pool Index Physical Reads<br />
Überlegen Sie sich, wie Sie aus diesen Daten die Buer Hit Ratio berechnen können.<br />
Zum Reset der Zähler zwischen den Messungen wird der folgende Befehl verwendet:<br />
reset monitor for database <br />
Achtung! Dies bedeutet nur ein Rücksetzen bezüglich der aktuellen Session (also beispielsweise<br />
des jeweiligen Befehlszeilenprozessors). Dabei werden keine globalen Zähler zurückgesetzt. Sie<br />
müssen also das Reset und die Analyse der Daten immer aus dem gleichen Befehlszeilenprozessor,<br />
d.h. innerhalb der gleichen Session ausführen.<br />
1 Der Parameter DFT_MON_BUFPOOL steht dabei für die Buerpools weitere Parameter existieren für das<br />
Sammeln von Informationen über Sperren, Aktivitäten auf bestimmten Tabellen, SQL-Statements etc. Der<br />
Status der verschiedenen Parameter des Datenbankmanagers kann mit dem Befehl get dbm configuration<br />
angezeigt werden.<br />
2 Hinweis: sollte db2stop nicht erfolgreich ausgeführt werden können, sind ggf. noch Applikationen (z.B.<br />
Befehlszeilenprogramme) aktiv bzw. es existieren noch Verbindungen zu Datenbanken. Beenden Sie diese. Falls<br />
eine erfolgreiche Ausführung von db2stop trotzdem nicht möglich ist, können Sie diese Anwendungen mit dem<br />
Kommando force application all oder mit Hilfe von db2stop force beenden.<br />
3 Die deutsche Übersetzung Lesevorgänge im <strong>Pu</strong>erpoolindex bei der Anzeige ist irreführend gemeint sind<br />
hier die Lesevorgänge von Indexseiten im <strong>Pu</strong>er.<br />
2
<strong>Hochschule</strong> Darmstadt, <strong>Fachbereich</strong> <strong>Informatik</strong><br />
Prof. Dr. U. Störl<br />
Architektur von Datenbanksystemen<br />
SoSe 2013<br />
Aufgabe 2 (<strong>Pu</strong>ergröÿe verändern)<br />
Überlegen Sie sich vor Beginn der Arbeit, welches die von Ihnen erwartete theoretisch optimale<br />
Gröÿe für den <strong>Pu</strong>er für das jeweilige Anwendungsszenario wäre und protokollieren Sie diese<br />
Thesen im <strong>Praktikum</strong>sbericht.<br />
Zum Verändern der <strong>Pu</strong>ergröÿe verwenden Sie wieder den bereits aus <strong>Praktikum</strong> 2 bekanten Befehle.<br />
Starten Sie dieses Mal mit einer <strong>Pu</strong>ergröÿe von 1.000 Seiten (der Parameter immediate<br />
steht für das sofortige Wirksamwerden dieser Änderung):<br />
alter bufferpool IBMDEFAULTBP immediate size 1000<br />
Passen Sie für die denierten Anwendungsszenarien die <strong>Pu</strong>ergröÿe jeweils an und ermitteln<br />
und protokollieren Sie die erhaltenen Buer Hit Ratios sowie die jeweiligen Laufzeiten (analog<br />
zu <strong>Praktikum</strong> 2). Beginnen Sie mit einer <strong>Pu</strong>ergröÿe von 1.000 Seiten und verändern Sie die<br />
Gröÿe, bis Sie die von Ihnen berechnete optimale Gröÿe erreichen. Sie sollten mehrere Schritte<br />
zwischen diesen beiden Grenzen wählen, um die Änderungen im Verhalten der Buer Pool Hit<br />
Ratio (BHR) zu erkennen. Falls die BHR noch nicht optimal ist, vergröÿern Sie den <strong>Pu</strong>er ggf.<br />
weiter und diskutieren Sie im Bericht, warum der erwartete Wert nicht ausgereicht hat.<br />
Überlegen Sie sich bei der Durchführung, ob und wann Sie sinnvollerweise den <strong>Pu</strong>er leeren<br />
müssen (das geht nur durch die Ausführung von db2stop / db2start) oder ob Sie einen<br />
bereits gefüllten <strong>Pu</strong>er benötigen und stellen Sie diese Umgebung ggf. vor der Messung her.<br />
Begründen Sie, warum Sie sich wann für einen gefüllten oder leeren <strong>Pu</strong>er entschieden haben.<br />
Hinweis: Die <strong>Pu</strong>ergröÿe zu klein (unter 30 Seiten) zu wählen, ist nicht sinnvoll, da dann auch<br />
Meta-Informationen (Katalogdaten etc.) permanent ein- und ausgelagert werden müssen und<br />
keine sinnvollen Werte ermittelt werden können.<br />
Analysieren Sie die erzielten Ergebnisse durch eine geeignete Darstellung (Tabelle, Diagramm<br />
o.ä.) im <strong>Praktikum</strong>sbericht und diskutieren Sie insbesondere, ob die von Ihnen vorab prognostizierten<br />
Ergebnisse eingetroen sind.<br />
Aufgabe 3 (Datenseiten in DBJ)<br />
In DBJ gelangen Sie durch die Eingabe von +D 4 in eine Debug-Konsole. Diese bietet die<br />
Möglichkeit, verschiedene Systemparameter mit dem show-Kommando auszulesen. Informieren<br />
Sie sich in der Benutzerdokumentation über die möglichen Optionen die für show speziziert<br />
werden können.<br />
Verwenden Sie die Möglichkeiten der Debug-Konsole, um zu ermitteln, wie viele Datenseiten<br />
für die Tabelle KUNDE in <strong>Praktikum</strong> 2, Aufgabe 4 angelegt wurden. Wie hoch ist der Füllgrad<br />
der Seiten?<br />
Verändern Sie nun für eine dieser Datenseiten den Füllgrad durch geeignete Update-Operationen.<br />
Was beobachten Sie?<br />
4 Falls +D in ihrem System anders belegt sein sollte (beispielsweise in der VM) können Sie beim<br />
Starten von dbj mit der Option -debugkey einen anderen Buchstaben spezizieren.<br />
3
<strong>Hochschule</strong> Darmstadt, <strong>Fachbereich</strong> <strong>Informatik</strong><br />
Prof. Dr. U. Störl<br />
Architektur von Datenbanksystemen<br />
SoSe 2013<br />
Abgabe des <strong>Praktikum</strong>sberichts: Nach den gleichen Regeln wie in <strong>Praktikum</strong> 1 und 2.<br />
4