Troubleshooting
1. Algemene Strategie
Stap 1 — Probleem definiëren
- Beschrijf symptomen vs. verwacht gedrag: "als ik … doe, gebeurt er … maar ik verwacht …"
- Enkel feiten — geen conclusies, geen vooringenomenheid
- Dus niet: "de server is down" of "het internet ligt plat"
- Stel vast: sinds wanneer, wanneer werkte het nog?
Stap 2 — Reproduceren
- Kan je het probleem zelf ook veroorzaken? Telkens opnieuw?
- Ideaal: reproduceer in een testomgeving — zo kan je zonder risico logs aanzetten en fixes uitproberen
- Niet reproduceerbaar: alleen logs van incidenten beschikbaar → wachten op meer voorvallen of extra instrumenteren
Stap 3 — Informatie verzamelen
- Lees de foutmelding goed
- Doorzoek logs van alle relevante subsystemen: webserver, database, syslog
- → Speurderswerk
Stap 4 — Oorzaak zoeken
Twee strategieën:
| Strategie | Aanpak |
|---|---|
| Checklist | Meest frequente oorzaken blind één voor één nakijken |
| Bisecting | Systematisch verifiëren tot waar het nog werkt — vereist kennis van de keten (webserver → applicatie → netwerk → db server) |
Bvb: werkt dezelfde query rechtstreeks op de databaseserver? Dan ligt het probleem niet in de query.
Stap 5 — Oplossing uitproberen
- Let op neveneffecten (bv. een restart kan andere problemen veroorzaken)
- Test of de fix het probleem oplost
- Werkt het niet? Ongedaan maken — anders maak je het erger
Workaround ≠ fix
Als na een restart het probleem weg is, heb je nog steeds niet de echte oorzaak gevonden. Je hebt een workaround, geen fix. Blijf zoeken naar de root cause.
2. Common Errors
| Fout | Controleer |
|---|---|
| Can't connect to SQL Server | Draait de SQL Server service? Netwerk connectiviteit? Firewall? |
| Access denied | Login, user, wachtwoord, rechten correct? |
| Too many connections | Aantal actieve vs. max verbindingen |
Too many connections — queries
-- Actieve processen bekijken
EXEC sp_who2;
-- Aantal verbindingen vs. maximum
SELECT @@CONNECTIONS, @@MAX_CONNECTIONS;
Via SSMS: Activity Monitor (rechtermuisklik op server → Activity Monitor)
3. Hulpmiddelen
PowerShell — service controleren en herstarten
T-SQL — connecties per database
SELECT DB_NAME(dbid) AS DBName,
COUNT(dbid) AS NumberOfConnections,
loginame AS LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame;
Error Log
Via SSMS: Object Explorer → Management → SQL Server Logs → Current
Bevat: opstarttijdstipinfo, configuratie-instellingen, foutmeldingen, waarschuwingen.
Dynamic Management Views (DMV's)
DMV's retourneren serverstatusinformatie voor: - Status van een serverinstantie bewaken - Problemen diagnosticeren - Prestaties afstemmen
-- Overzicht beschikbare DMV's
SELECT * FROM sys.system_objects WHERE type = 'V' AND name LIKE 'dm_%';
Referentie: docs.microsoft.com — System Dynamic Management Views