Über unsere Webseite zum Assessment von MSSQL Instanzen erreichen uns regelmäßig Anfragen dazu, welche Ergebnisse man von einem Assessment bei der Mainzer Datenfabrik erwarten kann. Einige unserer Kunden hatten sich wegen Performanceproblemen an Mitbewerber gewandt, ohne dass ihr Problem wirklich gelöst wurde. Deshalb in diesem Beitrag einige Details zu unserem MSSQL Assessment.
Vorgehensweise
Nach Beauftragung eines Assessments bei uns erhalten Sie zum Download eine komprimierte Datei von ca. 30 MB mit dem Namen Toolkit.zip. Diese packen Sie auf einem Rechner mit Verbindung zu Ihrer MSSQL Instanz aus und finden anschließend einen Ordner mit dem Namen Toolkit, der u.a. eine ausführbare Datei mit dem Namen 00_Toolkit.exe enthält. Diese Datei wird aus einer cmd- oder PowerShell heraus ausgeführt. Es erfolgt eine Abfrage der Verbindungsdaten zu der zu analysierenden MSSQL Instanz. Die anschließende Ausführung, in der das Toolkit die erforderlichen Daten sammelt, dauert ungefähr 5 Minuten. Die Ergebnisse werden in einer komprimierten Ergebnisdatei gesammelt, deren Größe je nach Umfang der Ergebnisse zwischen 1 und 10 MB beträgt. Diese Datei kann uns zur Auswertung per E-Mail zugeschickt werden. Um Ihre Daten zu schützen - es handelt sich natürlich lediglich um Metadaten - ist die Ergebnisdatei verschlüsselt.
Voraussetzung
Damit ein Assessment sinnvoll durchgeführt werden kann, sollte Ihre MSSQL Instanz mindestens eine Woche ununterbrochen betrieben worden sein. Datenbanken sollten allerdings grundsätzlich nicht heruntergefahren werden, weil hierdurch wichtige Informationen aus dem Hauptspeicher verloren gehen. Der Aufrufer des Assessments muss mit einem Benutzer erfolgen, der sysadmin-Berechtigung hat.
Auswertung
Nach Erhalt Ihrer verschlüsselten Ergebnisdatei erfolgt die Auswertung durch einen erfahrenen Mitarbeiter. Diese dauert ca. zwei Netto-Arbeitstage, so dass Sie je nach aktueller Auslastung des jeweiligen Consultant innerhalb einer Woche mit Ergebnissen rechnen können. Die Auswertung besteht aus sehr detaillierten Angaben, welche Probleme oder auch nur ungewöhnlichen Einstellungen in Ihrer MSSQL Instanz gefunden wurden und einer Zusammenfassung die Ihnen in einer Präsentation vorgestellt wird. Im Anschluss an die Präsentation erhalten Sie einen Download-Link über den Sie die Auswertung und die Zusammenfassung in einer komprimierten Datei herunterladen können.
Präsentation der Ergebnisse
Die Präsentation der Ergebnisse erfolgt in einem Teams-Meeting, in dem Sie Gelegenheit haben, zu den einzelnen vorgestellten Problemen bzw. Änderungsvorschlägen Fragen zu stellen. Die Präsentation dauert ca. 1 - 2 Stunden und gibt die wesentlichen Problemgruppen Ihrer MSSQL Instanz wieder. Als Problemgruppe seien hier beispielsweise folgende Punkte angegeben (Zahlenangaben sind fiktiv, werden aber in vielen bisher ausgewerteten Assessments teilweise weit übertroffen).
- Wichtige Sicherheitsanforderungen wurden nicht eingehalten
- In den Details wurden 100 Indizes aufgeführt, die nie benutzt werden (aber zur Pflege bei jeder Datenänderung aktualisiert werden müssen)
- In den Details werden 50 Tabellen aufgeführt, zu denen übermäßig viele Indizes verwendet wurden
- Es existieren 125 Fremdschlüssel die nicht indiziert wurden. Dadurch entstehen Performanceprobleme und im Worst Case eine erhöhte Gefahr des Auftretens von Deadlocks
- Auslastung der Laufwerke
- Auslastung der CPUs
Ergebnisse im Detail
Die folgenden Unterkapitel beschreiben die detaillierten Ergebnisse unseres Assessments:
Details zur Instanz
Hier erhalten Sie Informationen über Ihre aktuelle Serverkonfiguration wie
- aktuelle Versionsnummer bzw. Hinweis auf dringend erforderliches Update
- MSSQL Edition
- CPUs
- Hauptspeicher
- Datenumfang
Instanz- und Datenbankeinstellungen (“Health”)
In diesem Bereich des Assessments erhalten Sie Umfangreiche Informationen aus den Problemgruppen
- Backup
- Daten- und Logfile-Einstellungen
- Monitoring
- Abweichungen von Standardeinstellungen der Datenbank oder Instanz (Diese sind nicht in jedem Fall negativ, sollten aber als Hinweis und Überblick betrachtet werden, wo von Standards abgewichen wurde)
- Performance
- Zuverlässigkeit
- Sicherheit
- Wait-Statistiken
Waits
Eine nach Umfang sortierte Liste aller Waits. Es gibt ca. 1200 Wait-Typen von denen viele nicht berücksichtigt werden müssen. Werden aber gewisse Waits an der Spitze der sortierten Liste gefunden, die für eine schlechte Performance Ihrer Instanz verantwortlich sind, erhält man hier die benötigte Information.
Datenbanken
In diesem Bereich werden alle Datenbanken mit detaillierten Informationen aufgeführt. Hierzu gehören beispielsweise
- Recovery Model - Hier gab es bei einigen Kunden schon Überraschungen, als sie erfuhren, dass einige ihrer Datenbanken im Simple Recovery Modus betrieben wurden und damit im Problemfall nur ein Recovery bis zur letzten vollständigen Sicherung gab und alle danach erfassten Daten verloren sind
- Größe der DB
- Größe der TLog-Datei, häufig ein Hinweis auf mangelnde Backup-Zyklen bei den Transaktionslog-Dateien oder Replikationsprobleme
- Kompatibilitätslevel, oft bei Updates vernachlässigt, so dass die Datenbanken neue Features nicht nutzen können
Datenfiles
Hier werden alle Datenfiles mit ihren Umfangs- und Performancedaten bezüglich lesender und schreibender Zugriffe aufgeführt.
Laufwerke
Details zur Auslastung der Laufwerke die von der Instanz verwendet werden.
Indexinformationen
Dieser Bereich ist in der Regel der umfangreichste und es ist keine Seltenheit, dass hier mehrere tausend Hinweise auf falsch konfigurierte Indizes aufgeführt sind. Ihr DBA wird Ihnen bestätigen, dass eine wesentliche Performancesteigerung nicht durch Parametrisierung der Instanz oder der Datenbanken, sondern ausschließlich über eine ausgewogene Indizierung erreicht werden kann. Diese Ausgewogenheit zu finden, ist ein Wesentlicher Bestandteil des Assessments. Die anschließende Umsetzung ist leider viel Fleißarbeit, wobei die Mainzer Datenfabrik Sie jedoch unterstützen kann.
Probleme in diesem Umfeld können beispielsweise sein
- fehlende Indizes, das heißt, es gibt keine Indizes die komplexe Abfragen unterstützen
- zu viele Indizes, was dazu führt, dass die Aktualisierung aller Indizes im Zusammenhang mit Datenänderungen aufwändiger ist, als Abfragen ohne deren Unterstützung
- Indizierung von Textspalten. In den meisten Fällen ist die Indizierung von Textspalten nicht sinnvoll, weil sich Suchen oft auf Textmuster mit like beziehen und diese nur dann den Index nutzen können, wenn zumindest das erste Zeichen des Suchstrings kein Wildcard-Zeichen ist. Darüber hinaus kann die Indizierung von Textspalten bei langen Texten zu einer sehr großen Index-Struktur führen. Zur Suche in Texten sollte besser die Freitextsuche verwendet werden, die allerdings eine geänderte Abfragesyntax erfordert.
Insgesamt gibt es in diesem Umfeld 30 Problemgruppen.
Die Anzahl der Hinweise zu den Indizes ist auf 10.000 Einträge begrenzt, um die Instanz im Verlauf des Assessments nicht übermäßig zu beanspruchen.
Verschiedene Details zu aufwändigen SQL Statements
Hier werden Details zu den Top-Ten-Statements nach verschiedenen Kriterien (CPU, Ausführungszeit, Schreiboperationen, …) angegeben.
Hierzu gehören
- Anzahl der Verwendungen / Aufrufe
- Durchschnittlicher CPU-Verbrauch
- Dauer
- Details zu Lese- und Schreibzugriffen
Deadlock-Informationen
Falls seit dem letzten Neustart der Datenbank Deadlocks aufgetreten sind, werden diese detaillierter beschrieben.
Backups
Hier handelt es sich um eine Auflistung der Backup-Historie. Wichtigste Information hier ist, in welcher Datenbank in einem Worst Case Szenario wie viele Daten verloren gehen können. Die Angabe bezieht sich hier auf die Anzahl von Minuten vor dem Crash deren Daten nicht wiederhergestellt werden können.
Error-Log
Bestandteil des Assessments sind auch die Information aus dem Error-Log.
CPU-Auslastung
Die CPU-Auslastung der letzten vier Stunden vor Beginn der Assessment-Ausführung wird numerisch und graphisch wiedergegeben. Aus den Informationen ergibt sich insbesondere welchen Anteil die analysierte Instanz an dieser Auslastung hatte und wie große die Auslastung anderer Prozesse war. Ein Beispiel zeigt die folgende Graphik.
Aktuelle Waits
Die Information hier ist vergleichbar mit der bereits in Kapitel Waits vorgestellten, sie bezieht sich jedoch auf einen kurzen Zeitpunkt zur Erstellung des Assessments.
Statistik
Zum Abschluss noch ein paar Statistik-Informationen aus unseren Assessments des Jahres 2023. Hierbei werden nur initiale Assessments betrachtet (einige Kunden haben für die gleiche Instanz mehrere Assessments erhalten, um ihren Fortschritt bei der Behebung der verschiedenen Befunde zu verfolgen)
Fazit
Unser SQL Server Assessment bietet einen umfangreichen Einblick in die Performance Ihrer SQL Server Instanz und einen tiefen Einblick in Möglichkeiten, diese zu verbessern.Mainzer Datenfabrik GmbH Assessments
Wenn Sie mehr zu diesem Thema erfahren möchten, stehen Ihnen unsere erfahren Expert:innen bei Rückfragen zur Verfügung. Kontaktieren Sie uns dafür gerne über unser Kontaktformular. Sofern wir Sie bereits überzeugen konnten können Sie das Assessment unter Mainzer Datenfabrik GmbH Assessmentsbei uns Online bestellen. Wir freuen uns von Ihnen zu hören!