16.01.2014 Aufrufe

Praktikum 3: Pu erverwaltung - Fachbereich Informatik - Hochschule ...

Praktikum 3: Pu erverwaltung - Fachbereich Informatik - Hochschule ...

Praktikum 3: Pu erverwaltung - Fachbereich Informatik - Hochschule ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!