Der MS-SQL Health Check
Mit diesem einfachen Mittel kann jede Microsoft SQL Server Datenbank auf ihre Gesundheit geprüft werden. Der MS-SQL Health Check ist auf jede Version anwendbar und besteht aus einem Query, welches fünf Tabellen mit verschiedenen Auswertungen erstellt.
Das Query finden Sie gegen Angabe Ihrer Mail-Adresse ganz unten auf dieser Seite. Sehen Sie zuerst, was das Script genau tut:
Tabellen im MS-SQL Health Check
Diese Tabellen werden mit dem MS-SQL Health Check erstellt:
- Wichtigste Informationen über die Datenbankeinstellungen
- SA User mit ihrem Status
- Fehlgeschlagene Jobs der letzten 30 Tage
- Backup Check letzte 24h
- Top Wait Tasks seit letztem Reboot
Auswertung der Tabellen
Im Grunde ist die Auswertung recht einfach:
Tabelle 1:
- Bei einem Eintrag 1 ist die Einstellung nicht korrekt.
- is_auto_close_on – Ist diese Einstellung eingeschaltet, schliesst sich die Datenbank beim Logout des letzten Benutzers und der Zwischenspeicher wird geleert. Bei jeder neuen Verbindung muss die Datenbank wieder geöffnet werden. Dies beansprucht Zeit.
- is_auto_shrink_on – Ist diese Einstellung eingeschaltet, ordnet es bei jedem Schrumpfen die Dateien neu ein. Es entstehen enorme Fragmentationen.
- check_recovery_model – Idealerweise ist die Datenbank im Wiederherstellungsmodel (Recovery model) «Full». Nur in ganz besonderen Fällen kann auch «Simple» eingesetzt werden.
- db_owner_sa_verify – ist nicht der sa Benutzer der Eigentümer einer Datenbank, kann es zu Problemen führen, wenn der angegebene Benutzer gelöscht wird.
- collation_verify – stimmt die Kollation einer Datenbank nicht mit jener des Servers überein, kann es zu Abfrageschwierigkeiten führen.
- page_verify_option_checksum – Überprüft, ob die richtige Option «CHECKSUM» eingestellt ist.
- compatibility_verify – Ist das Kompatibilitätslevel nicht die des SQL Servers, läuft die Datenbank auf einer alten Version.
Tabelle 2:
- Bei einem Eintrag 1 ist das Login deaktiviert.
- Ist der sa Benutzer einer Instanz deaktiviert und kein weiteres aktiviertes Login verfügt über Systemadministrator-Rechte, kommt man im schlimmsten Fall nicht mehr auf die Instanz.
Tabelle 3:
- Je weniger Einträge in der Tabelle vorhanden sind, desto besser laufen die Jobs durch.
Tabelle 4:
- Bei einem Eintrag 1 in der Spalte no_Backup_24h, wurde die Datenbank seit mehr als 24h nicht gesichert.
- Es ist dringend empfohlen, mindestens einmal pro Tag eine Sicherung der Datenbank durchzuführen.
Tabelle 5:
- Dies ist die einzige Tabelle, die etwas komplexer ist. Abhängig von den ersten Einträgen in der Tabelle, muss diese anders gewertet werden. Die Wait Tasks zuoberst in der Tabelle geben Hinweise darauf, dass es in der Datenbank verschiedene Locks und Probleme gibt.