Wenn Anwendungen plötzlich mit einem Timeout-Fehler beim Zugriff auf den SQL Server reagieren, ist meist nicht der SQL Engine selbst der Schuldige — sondern eine falsch konfigurierte Timeout-Einstellung für Verbindungen oder Abfragen. In diesem Beitrag erfährst du, welche Zeitlimits es gibt, wie du sie einstellst und worauf du im Betrieb achten solltest.
Verbindungs-Timeout vs. Abfrage-Timeout – was ist der Unterschied?
- Connection Timeout: Gibt an, wie viele Sekunden ein Versuch dauern darf, eine Verbindung zum SQL-Server aufzubauen. Wird dieses Intervall überschritten, bricht der Client den Versuch ab. Standard sind meist 30 Sekunden. (Quelle: Stackoverflow)
- Command Timeout: Regelt die maximale Laufzeit einer einzelnen SQL-Abfrage bzw. eines Befehls auf der Datenbank. Wird sie überschritten, resultiert meist ein Fehler wie „Timeout expired“.
- Remote Query Timeout: Legt im SQL-Server fest, wie lange eine über einen Linked Server initiierte Anfrage maximal laufen darf. Standardwert ist hier z. B. 600 Sekunden. Microsoft Learn
- Remote Login Timeout: Zeitspanne, die das System bei einem fehlgeschlagenen Login-Versuch zu einem Remote-Server wartet. Standard z. B. 20 Sekunden. Microsoft Learn
Timeout-Einstellungen ändern – praktische Vorgehensweise
1. Connection Timeout über Client/Anwendung
In der Verbindungszeichenfolge (Connection String) z. B. in einer C#-Anwendung:
"Data Source=myServer;Initial Catalog=myDB;User Id=...;Password=...;Connect Timeout=15;"
Hier beträgt die Wartezeit beim Verbindungsaufbau 15 Sekunden.
Hinweis: Der Parameter heißt Connect Timeout oder Connection Timeout — ein falscher Name wird von vielen Clients ignoriert. Stack Overflow
2. Command Timeout in Anwendung setzen
SqlCommand cmd = new SqlCommand(yourQuery, connection);
cmd.CommandTimeout = 60; // 60 Sekunden Laufzeit erlauben
Damit kontrollierst du Explizit eine einzelne Abfrage-Laufzeit.
3. Remote Query Timeout im SQL Server konfigurieren
Im SQL Server Management Studio unter:
„Server > Eigenschaften > Verbindungen“ → Remote Query Timeout (Sekunden)

Alternativ via T-SQL:
EXEC sp_configure 'remote query timeout', 300;
RECONFIGURE;
Der neue Wert gilt sofort. Microsoft Learn
4. Remote Login Timeout konfigurieren
Analog über SSIStudio oder T-SQL:
EXEC sp_configure 'remote login timeout', 30;
RECONFIGURE;
Heißt: Bei Remote-Login wird nach 30 Sekunden abgebrochen. Microsoft Learn
Best Practices & Fehlerquellen
- Setze Connection Timeout nicht auf 0 (kein Limit): Der Client könnte endlos warten.
- Für spektakulär lange Ausführungen gilt: Statt Timeout aufzulösen besser den Abfrageplan optimieren, Indizes prüfen oder Datenmenge reduzieren.
- Bei großen Datenmengen oder OLAP-Abfragen kann Command Timeout sinnvoll höher gesetzt werden – z. B. 300 Sekunden.
Fazit
Time-outs sind wichtige Schutzmechanismen – doch sie müssen in richtiger Kombination gesetzt werden: Connection Timeout für Aufbau, Command/Query Timeout für Laufzeit. Wird einer unterschätzt oder falsch konfiguriert, entstehen lästige Wartezeiten oder Fehler beim Zugriff auf den SQL Server.