Blog
Thursday, 07. December 2023

SQL Server Assessment - Was kann ich erwarten?

Rainer
IT-Consultant

Ü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.

CPU-Auslastung durch die analysierte Instanz und durch andere Prozesse
CPU-Auslastung durch die analysierte Instanz und durch andere Prozesse

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)

Mainzer Datenfabrik - SQL Server Assessment - Was kann ich erwarten?

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.

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!

Interesse geweckt?

Unsere Expert:innen stehen Ihnen bei allen Fragen rund um Ihre IT Infrastruktur zur Seite.

Kontaktieren Sie uns gerne über das Kontaktformular und vereinbaren ein unverbindliches Beratungsgespräch mit unseren Berater:innen zur Bedarfsevaluierung. Gemeinsam optimieren wir Ihre Umgebung und steigern Ihre Performance!
Wir freuen uns auf Ihre Kontaktaufnahme!

Taunusstraße 72
55118 Mainz
info@madafa.de
+49 6131 3331612
Bürozeiten
Montag bis Donnerstag:
9:00 - 17:00 Uhr MEZ

Freitags:
9:30 - 14:00 Uhr MEZ
Wir sind Ihre SQL Expert:innen!
Noch Fragen? - Wir haben immer die passende Antwort für Sie!