Performance-Optimierung für Datenbankanwendungen

… ausführt, um diesen
nicht durch die Protokollierung unnötig
zu belasten (es ist auch gängige Praxis vieler
System- und Datenbank-Administratoren
mithilfe des Windows Performance
Monitor in verschiedenen Fenstern verschiedene
Server gleichzeitig zu überwachen
und somit mit einem Blick eventuelle
Engpässe feststellen zu können).

Mit den beiden oben genannten Tools
empfiehlt es sich besonders, die Speicherauslastung
im Auge zu behalten, denn dies
ist einer der kritischsten Faktoren im Bezug
auf die Performance (zu wenig Hauptspeicher
resultiert in häufiges Auslagern
auf Festplatte, was wiederum langsam ist
und das Gesamtsystem bremst).

Neben den betriebssystemeigenen
Tools bietet natürlich auch der SQL Server
eine Reihe von Mitteln zum Feststellen
von Performance-Problemen. Analog zum
Windows Performance Monitor gibt es
hier den SQL Server Profiler, mit dem sich
Datenbankaktivitäten noch genauer (bis
auf SQL-Befehlsebene) beobachten lassen.
Auch hier lassen sich die gemessenen Werte
in Protokolldateien (oder wahlweise auch
Datenbanken) festhalten. Dazu verfügt
der Profiler über die Möglichkeit, Protokolle
vom Windows Performance Monitor
einzulesen und mit den eigenen Protokollen
abzugleichen, wodurch sich eventuell
Zusammenhänge zwischen einzelnen
ausgeführten SQL-Kommandos und beispielsweise
Speicherengpässen erkennen
lassen. Doch wie der Windows Performance
Monitor erzeugt auch der SQL Server
Profiler selber eine nicht unerhebliche
Last auf dem Server, sodass er nicht ständig
(sondern gezielt über einen bestimmten
Zeitraum) laufen sollte. Möchte man das
Verhalten von einzelnen SQL-Kommandos
genauer unter die Lupe nehmen, bietet
sich dafür das normale Abfragefenster des
SQL Server Management Studios (bzw.
bei SQL Server 2000 der Query Analyzer)
an. Hier lassen sich alternativ zum Ausführen
einer Abfrage auch lediglich deren
Ausführungsplan graphisch darstellen
lassen (über den Menüpunkt Abfrage |
Geschätzten Ausführungsplan anzeigen
)
— Abbildung 3:

Abb. 3: Die grafische Darstellung des Ausführungsplans

Alternativ lässt sich über die Anweisung
SET SHOWPLAN_TEXT ON erreichen,
dass für darauf folgende Abfragen der Ausführungsplan
in tabellarischer Form angezeigt
wird. Mit beiden Varianten lässt sich
leicht feststellen, wie auf Tabellen und Indizes
zugegriffen wird und daraus schließen,
ob eventuell ein entscheidender Index fehlt.
Möchte man nicht nur einzelne Anweisungen
testen, bietet sich der Datenbankmodul-
Optimierungsratgeber an, der im
Gegensatz zu seinem Vorgänger von SQL
Server 2000 (dem Indexoptimierungs-Assistenten)
nicht nur die Indizierung, sondern
auch Partitionierung der Daten berücksichtigt.
Dieses Tool beansprucht den
Server allerdings so sehr, dass es am besten
nur nachts oder am Wochenende laufen
sollte. Als Ergebnis wird ein T-SQL-Skript
erzeugt, mit dem die fehlenden Indizes etc.
erstellt werden. Sowohl der SQL Server
Profiler als auch der Datenbankmodul-
Optimierungsratgeber sind ausschließlich
in der Standard- und Enterprise-Edition
des SQL Server verfügbar. Bei den Express-
und Workgroup-Editionen muss
der Anwender mit den übrigen Tools auskommen.

Optimierung der Systemumgebung

Auch die bestformulierten SQL-Statements
können nicht schnell ausgeführt
werden, wenn Hard- und Softwareumgebung
nicht zur Anwendung passen oder
gar hoffnungslos unterdimensioniert sind.
Da die Systemumgebung bei den meisten
Projekten jedoch schon vorgegeben ist,
wird dieses Thema nur kurz angerissen.
Anders, als manch einer es vielleicht erwartet,
ist der wesentliche Faktor für die
Hardwareumgebung nicht die Prozessorperformance,
sondern der Hauptspeicher.
Der SQL Server kann vorhandenen Speicher
sehr gut nutzen, um die Ausführung
von Abfragen zu beschleunigen, indem
ein Großteil der Daten nicht mehr von
der vergleichsweise langsamen Festplatte,
sondern direkt aus dem im Hauptspeicher
liegenden Datenbank-Cache gelesen wird.
Umgekehrt lagert schon das Betriebssystem
bei zu geringem Hauptspeicher Daten
in die Windows-Auslagerungsdatei aus,
was wegen der zusätzlichen Plattenzugriffe
zu erheblichen Verzögerungen führt.
Insbesondere dann, …

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.