SQL Server „Time Bombs“ – Typische versteckte Probleme
This post might contain affiliate links. We may earn a commission if you click and make a purchase. Your support is appreciated!
Vielen Dank an DallasDBAs für die Inspiration – Jeder DBA kennt es: Ein SQL Server läuft monatelang problemlos – bis plötzlich ein unerwartetes Problem auftritt, das den Betrieb stört. Diese versteckten „Time Bombs“ sind tückisch, weil sie oft unbemerkt bleiben, bis sie eskalieren. In diesem Beitrag zeige ich dir einige typische SQL Server-Probleme, die irgendwann explodieren können – und wie du sie rechtzeitig entschärfst.
1. Auto-Growth auf Standardwerten belassen
SQL Server-Datenbanken wachsen – das ist normal. Doch wenn die Auto-Growth-Einstellungen nicht optimiert sind, kann es zu massiven Performance-Einbrüchen kommen.
Problem:
- Standardmäßig wächst die Datenbank in kleinen Schritten (1 MB für Daten, 10% für Logs), was bei stark wachsenden Tabellen zu einer hohen Fragmentierung führt.
- Plötzlicher Speicherplatzmangel, wenn das Laufwerk unerwartet voll wird.
Lösung:
- Setze das Auto-Growth auf feste Werte statt Prozentangaben, z. B. 512 MB oder 1 GB.
- Überwache die Datenbankgröße regelmäßig beispielsweise mit:
SELECT name, size * 8 / 1024 AS SizeMB FROM sys.master_files;
Tipp: Falls deine Datenbank plötzlich stoppt, prüfe das Error Log – SQL Server kann nicht mehr schreiben, wenn der Speicherplatz voll ist!
2. Nicht optimierte Wartungspläne
Regelmäßige Wartung hält deine Datenbank gesund – aber wenn sie schlecht konfiguriert ist, kann sie mehr schaden als helfen.
Problem:
- Index-Reorganisation und -Rebuild werden nicht regelmäßig durchgeführt → Fragmentierte Indizes verlangsamen Abfragen.
- Statistiken sind veraltet, was zu schlechten Query-Plänen führt.
- Log-Dateien wachsen unkontrolliert, weil kein regelmäßiges Log-Backup existiert.
Lösung:
- Verwende Ola Hallengren’s Maintenance Solution für automatisierte Wartung.
EXECUTE dbo.IndexOptimize
@Databases = 'USER_DATABASES',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30 - Prüfe veraltete Statistiken:
SELECT name, STATS_DATE(object_id, stats_id) AS LastUpdated FROM sys.stats;
Tipp: Plane Wartungsjobs außerhalb der Hauptlastzeiten, um Performance-Probleme zu vermeiden.
3. Job-Fehlermeldungen werden ignoriert
Ein SQL Server-Agent-Job läuft täglich – aber niemand merkt, wenn er plötzlich fehlschlägt. Fehlermeldungen landen oft in der Versenkung.
Problem:
- Wichtige Jobs wie Index-Wartung, Backups oder Replikation schlagen fehl, ohne dass jemand es bemerkt.
- Fehler häufen sich, bis sie zu einem kritischen Problem führen.
Lösung:
- Konfiguriere SQL Server-Agent-Alerts, um per E-Mail benachrichtigt zu werden:
EXEC msdb.dbo.sp_add_alert @name = 'Backup Failed', @message_id = 18210, @severity = 16, @notification_message = 'Backup fehlgeschlagen!';
- Prüfe fehlgeschlagene Jobs regelmäßig mit:
SELECT name, last_run_outcome FROM msdb.dbo.sysjobs;
Tipp: Nutze DBMail, um kritische Fehler automatisch an dein DBA-Team zu senden.
4. Fehlende oder veraltete Backups
Ein Backup ist nur dann nützlich, wenn es aktuell und wiederherstellbar ist! Zu viele Datenbanken laufen mit fehlerhaften oder fehlenden Sicherungen.
Problem:
- Backups sind alt oder fehlen komplett.
- Niemand testet, ob die Wiederherstellung überhaupt funktioniert.
- Der Recovery Model ist nicht auf die Geschäftsanforderungen abgestimmt.
Lösung:
- Prüfe den letzten Backup-Zeitpunkt:
SELECT database_name, MAX(backup_finish_date) FROM msdb.dbo.backupset GROUP BY database_name;
- Teste regelmäßig eine Wiederherstellung auf einem Testsystem.
- Stelle sicher, dass das Recovery Model (Full, Simple, Bulk-Logged) korrekt eingestellt ist.
Tipp: Automatisiere dein Backup mit:
EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@Directory = 'C:\Backup',
@BackupType = 'FULL',
@Verify = 'Y',
@Compress = 'Y',
@CheckSum = 'Y',
@CleanupTime = 24
Fazit: Proaktive Kontrolle statt böse Überraschungen
SQL Server „Time Bombs“ können deinen Betrieb schwer beeinträchtigen – doch mit präventiven Maßnahmen kannst du sie entschärfen:
- Auto-Growth anpassen, um Fragmentierung zu verringern.
- Wartung optimieren, um Indizes und Statistiken aktuell zu halten.
- Job-Fehler überwachen, damit kritische Prozesse nicht unbemerkt ausfallen.
- Regelmäßige Backups und Wiederherstellungstests durchführen.
Profi-Tipp: Aktiviere die SQL Server Mails für bestimmte Fehler- bzw Statusmeldungen, um immer auf dem Laufenden zu sein und zeitnah informiert zu werden.
Hast du schon einmal eine dieser „Time Bombs“ entschärfen müssen? Teile deine Erfahrungen in den Kommentaren! 😊
This post might contain affiliate links. We may earn a commission if you click and make a purchase. Your support is appreciated!

Björn arbeitet auch weiterhin aus Griechenland als Senior Consultant – Microsoft Data Platform und Cloud für die Kramer&Crew in Köln. Auch der Community bleibt er aus der neuen Heimat treu, er engagiert sich auf Data Saturdays oder in unterschiedlichen Foren. Er interessiert sich neben den Themen rund um den SQL Server, Powershell und Azure SQL für Science-Fiction, Backen 😉 und Radfahren.
Amazon.com Empfehlungen
Damit ich auch meine Kosten für den Blog ein wenig senken kann, verwende ich auf diese Seite das Amazon.com Affiliate Programm, so bekomme ich - falls ihr ein Produkt über meinen Link kauft, eine kleine Provision (ohne zusätzliche Kosten für euch!).
Auto Amazon Links: Keine Produkte gefunden.