Databasprestandaproblem är inte ovanliga. Lyckligtvis finns det oftast en ganska intuitiv lösning på de flesta problem. Det viktigaste en DBA kan göra för att åtgärda problem snabbt och förbättra SQL Server-prestanda är att se till att din prestationsövervakningsstrategi är uppdaterad och anpassad till dina databasövervakningsbehov. Om det inte är det är det dags att vidta åtgärder.
Det första steget för att förbättra din databasövervakning är att bedöma din nuvarande situation. Du kommer inte att veta var din övervakning saknas eller om övervakningen förbättrar några av dina prestandaproblem om du inte gör en baslinjemätning av din utgångspunkt.
För att ställa in din prestandabaslinje måste du bedöma tillståndet för dina SQL Server-databaser genom att ställa några frågor till dig själv:
Är frågor optimerade? Underpresterande frågor är ett säkert sätt att bromsa prestanda. Det finns många knep du kan prova för att rensa dina frågor, men det bästa alternativet är att implementera en frågeoptimerare som analyserar och skriver om dina frågor tills den hittar en som är snabbare.
Är index i bra skick? Indexering gjord på rätt sätt är tänkt att påskynda datahämtning. Det finns dock några vanliga problem som kan bromsa prestandan, inklusive ineffektiva fyllfaktorinställningar och siddelningar. Det bästa sättet att undvika dessa prestandaproblem är att inte ställa in ett systemomfattande fyllningsfaktorvärde och titta på behoven för varje index individuellt.
Är mycket data fragmenterad? Fragmenterade data påverkar prestanda genom att lägga för mycket tomt utrymme på en sida eller genom att sidor läggs till. Servern måste skanna och söka efter fragmenterad data, vilket gör att databasen går långsamt. Att köra Rebuild eller Reorganize kan rensa upp fragmentering.
Är det någonting som äter CPU? Databaser saktar ner när processorn belastas av flera resurser. Bedöm CPU-belastningen och avgör om problemet är att du behöver lägga till mer CPU eller att det finns ineffektiva resurser som använder mer CPU än de borde.
När du har en ögonblicksbild av startlinjen har du en bättre uppfattning om vilka typer av övervakningsförbättringar du behöver fokusera på. Här är fem sätt du kan förbättra din SQL Server-databasövervakning.
1. Bedöm dina övervakningsintervall och rensa data så ofta som möjligt
Verktyg för prestandaövervakning ger oändliga val för vilka mätvärden som ska övervakas, när data ska hämtas och hur länge data ska sparas. Om du övervakar flera instanser är mängden data du samlar in potentiellt häpnadsväckande (och dyr att lagra).
För att hålla din data på en hanterbar nivå, samla inte in data oftare än du måste och behåll bara data tillräckligt länge för att upptäcka trender. När du har registrerat något av intresse, arkivera eller bli av med informationen.
2. Kontrollera att dina frågor fungerar effektivt
Det finns många ställen för prestandaproblem att gömma sig i SQL Server. Eftersom databasapplikationer ofta kör SQL-frågor, är det ett utmärkt ställe att utvärdera tillståndet för dina frågor för att börja eliminera problem.
Om du till exempel övervakar hur frågor presterar över tiden hjälper dig att isolera alla som använder mer resurser än normalt. När du har identifierat problematiska frågor kan du köra varje fråga för att fastställa den specifika källan till problemet och rätta till det.
3. Granska Perfmon-räknare och inställningar
SQL Server Performance Monitor (Perfmon) är ett värdefullt verktyg som hjälper DBA:er att isolera svaga punkter i sina SQL Server-databaser. Perfmon låter dig ställa in prestandaräknare för var och en av dina servrar för att identifiera CPU-flaskhalsar, diskprestanda, minnesproblem och mycket mer.
Den här artikeln av Brent Ozar förklarar hur du kommer igång med att använda Perfmon och beskriver några bästa metoder.
4. Konfigurera dina varningar baserat på svårighetsgrad
Även om det finns många tillgängliga varningskonfigurationer är det bäst att vara selektiv när du konfigurerar varningar så att du inte ger efter för larmtrötthet. En bra tumregel är att ställa in varningar för problem med allvarlighetsgrad 17 eller högre och för felmeddelanden 823, 824 och 825 – med andra ord de problem som kan leda till att dina servrar går offline, allvarlig datakorruption eller dataförlust.
5. Dra nytta av alla larmhanteringsfunktioner som ditt SQL Server-prestandaövervakningsverktyg erbjuder
SQL Server-övervakningslösningar erbjuder ett brett utbud av hanteringsfunktioner. Ta dig tid att lära känna ditt verktygs funktioner och se till att du får ut det mesta värdet för din investering.
Några funktioner att leta efter som hjälper dig att förbättra din prestandaövervakningsprocess är:
Regler: Låter dig anpassa vilka larm som utlöses och när
Diagnostik: Meddelar dig att det finns ett problem och erbjuder sedan möjliga korrigeringar
Frågeprioritering: Fokuserar din uppmärksamhet på de svåraste problemen först
Mobila varningar: Låter dig komma åt, bedöma och börja utlösa larm var som helst när som helst
Brusreducering: Hjälper dig att undvika larmtrötthet genom att bara ta emot de aviseringar du behöver