Databassystem är mycket som människor:de är komplexa och mångskiktade, och de beter sig inte alltid bra under stress. Det är där övervakning av SQL Server-prestanda kommer in.
Ett bra verktyg för prestandaövervakning fungerar som dina ögon och öron inom SQL Server för att upptäcka – och i vissa fall till och med förutsäga – prestandaproblem så att de kan lösas snabbt med minimal påverkan på användarna.
När det gäller prestandaövervakning är timing verkligen allt. Ditt databassystem är värdelöst om det inte är tillgängligt för användare och kunder när de behöver det, så att undvika oplanerade avbrott och driftstopp är avgörande.
Din lösning för prestandaövervakning av SQL Server kan hjälpa till att lindra problem genom att övervaka i realtid, så att du blir varnad om prestandaproblem tidigt och du kan åtgärda små problem innan de blir stora problem. Många övervakningsverktyg erbjuder också robusta analyser som gör att du kan spåra prestandamått över tid för att hjälpa till att identifiera pågående systemproblem och lokalisera grundorsaken till prestandaförsämring.
End-to-end SQL Server-prestandaövervakning kommer utan tvekan att förbättra den övergripande hastigheten, effektiviteten och tillförlitligheten för ditt databassystem, men det finns tre huvudområden som drar mest nytta av SQL Server-prestandaövervakning.
1. CPU och resursanvändning
Genom att proaktivt övervaka CPU-bearbetning kan du omedelbart se om systemet är överbelastat. Konsekvent hög CPU-användning (70-80 procent) indikerar att det finns ett prestandaproblem i ditt system. Det roliga är att hitta den.
Eftersom CPU-svinet kan vara SQL Server eller en process utanför SQL Server, kommer ditt första steg att fastställa vilken process som orsakar problemet.
Om du har övervakat CPU-användning över tid (som rekommenderas), kan du fråga efter historiska data för att identifiera vilka processer som konsekvent använder överdriven CPU eller orsakar flaskhalsar, så att du kan fördjupa dig i varför.
När du väl vet vad och var problemet är, blir ditt nästa steg att ställa in ineffektiva frågor, optimera exekveringsplaner eller konfigurera om systemet för att ta bort trycket från CPU:n.
2. Drifttid och tillgänglighet
Dagens användare kräver hög tillgänglighet (HA) för varje applikation de använder, så att se till att dina databaser alltid är online och 100 procent tillgängliga måste vara en prioritet.
Säkerställ maximal serverupptid och HA genom att använda ditt SQL Server-övervakningsverktyg för att hålla utkik efter dessa prestandaproblem som kan påverka tillgängligheten:
Blockering
Blockering sker när flera klienter och olika processer begär samma resurser samtidigt. Om en resurs används är den låst och otillgänglig för efterföljande förfrågningar, så processen fördröjs tills resursen släpps och blir tillgänglig igen.
SQL Server-block löser sig normalt obemärkt, men ibland måste ett block lösas manuellt.
Deadlock
Dödläge för SQL Server uppstår när två processer som konkurrerar om exklusiv åtkomst till samma resurs skapar ett avstånd. Endast en process kan använda en resurs åt gången, så prestandan avtar tills dödläget är löst.
Det enda sättet att lösa ett dödläge i SQL Server är att döda en av de konkurrerande processerna och frigöra den låsta resursen så att processen kan slutföras.
TempDB-konflikt
TempDB-strid uppstår när flera resurser kräver TempDB, men det finns bara en enda TempDB-datafil att komma åt. TempDB-konflikt kan orsaka stora prestandaproblem och det tar ofta ett tag att diagnostisera eftersom problemen liknar normal blockering på grund av databaslås.
Alltid på tillgänglighetsgrupper är ett annat sätt att minimera driftstopp genom att maximera tillgängligheten för en uppsättning användardatabaser. Att ställa in SQL Server med hög tillgänglighet är ganska enkelt, och fördelarna är väl värda ansträngningen.
3. Diskutrymme
Otillräckligt diskutrymme är en ledande orsak till systemavbrott, men lyckligtvis är det ett ganska enkelt problem att undvika.
Ditt SQL Server-verktyg för prestandaövervakning bör tillåta dig att ställa in varningar när du får ont om diskutrymme innan du får prestandaproblem.
Att kontinuerligt övervaka dessa mätvärden hjälper till att säkerställa att du alltid har tillräckligt med diskutrymme:
- Fritt diskutrymme:Varningen meddelar dig om mängden ledigt diskutrymme sjunker under ett tröskelvärde
- Oallokerat utrymme:Varningen meddelar dig om en databasfil sjunker under ett tröskelvärde
- Databasfiler växer i storlek:Varningen kommer att meddela dig om överdriven eller snabb filtillväxt
De tre områden som diskuterats ovan drar stor nytta av SQL Server-prestandaövervakning, men i verkligheten är hela ditt system hälsosammare och presterar bättre när du har en omfattande övervakningsstrategi på plats.
Om du inte är säker på om du får alla fördelar som erbjuds av dagens SQL Server-lösningar för prestandaövervakning, kan den här checklistan hjälpa dig att välja ett SQL Server-prestandaövervakningsverktyg som passar din organisations specifika behov.