Da gerade in letzter Zeit öfters Leute wegen verschiedener Performanceprobleme auf mich zu kommen, habe ich hier mal ein paar gute Links zu dem Thema gesammelt. Sie gehen von der Situation aus, dass das Kind schon in den Brunnen gefallen ist. Die Performance ist schlecht und nun geht es darum rauszufinden warum.

Eine Warnung muss ich allerdings vorwegschicken: Oft genug ist der SQL Server gar nicht der Flaschenhals. Bei einer kürzlichen Performance-Analyse stellte sich heraus, dass die Anwendung über einen bestimmten Mechanismus erreichte, das ein fachliches Objekt nur von einem Anwender gleichzeitig bearbeitet werden konnte. Das war über eine zentrale Sperrdatei am Server gelöst. Aber das gleiche Ergebnis würde es auch bringen, wenn diese Anwendungssynchronisierung über eine Tabelle gemacht würde. Ab einer bestimmten Anzahl an Benutzern wurde das System einfach langsam, weil hier die Anwendungssperren zu schlugen. In einem anderen Fall war das Performance-Bottleneck die Anwendung am Arbeitsplatz, hier dauerte das Aufbauen der Bildschirmelemente furchtbar lange, weil in den Oberflächenelementen immer alle Daten angezeigt wurden, z.B. die Liste der aller Kunden in einer Drop-Down-Box. Das wird nun man langsam, wenn das recht viele sind. Für solche Mengen war die Anwendung offensichtlich nicht ausgelegt. Um fest zustellen wo die Performance bleibt, hilft nur eine Analyse des Netzverkehrs. Dann sieht man genau auf welcher Seite des Netzes die Probleme sind, oder ob es gar das Netz selber ist…

Falls man sich dann sicher ist, das die Performance bei SQL-Server bleibt, dann empfehle ich als Einstieg das TechNet-Dokument "Troubleshooting Performance Problems in SQL Server 2008" von Sunil Agarwal und anderen. Inzwischen ist das Dokument schon fast ein Jahr erhältlich, aber immer noch aktuell.

Als Vertiefung empfehle ich das Buch "SQL Server 2008 Query Performance Tuning Distilled" von Grant Fritchey (aka ScaryDba) und Sajal Dam. Bei Google gibt es eine Vorschau. Das Buch ist aus meiner Sicht günstig für den gebotenen Stoff. Wenn es darum ginge schlechte Performance proaktiv zu vermeiden, dann würde ich eher die Bücher von Itzik Ben-Gan empfehlen.

Zuletzt empfehle ich auch immer gerne die Unterlagen von TechNet-Vorträgen. Franz Robeller und Oliver Goletz stellen auch Ihre Folien und Beispiele der TechNet-Vorträge vom November 2009 bereit. Hier der Download-Link.