Højtydende databaser med høj tilgængelighed er enhver SQL Server DBA's mål, men virkeligheden er, at databaseydelsen ikke altid er optimal. Langsomme svartider, timeouts og fastlåste CPU'er sker for de bedste af os, hvilket gør strategisk konfiguration af SQL Server-diagnostik til et afgørende skridt i at opretholde et effektivt, velfungerende system.
SQL Server-diagnostik vil afdække ydeevneproblemer relateret til hukommelsesforbrug, forespørgselshastighed og effektivitet og CPU-brug, hvilket vil hjælpe dig med at identificere og afhjælpe problemer hurtigt med minimal effekt på ydeevnen. For yderligere at minimere præstationspåvirkningerne kan du oprette en præstationsovervågningsstrategi, der inkluderer sporing af diagnostiske data over tid for at afdække problemer, der er svære at lokalisere, og forudsige fremtidige præstationsproblemer, før de opstår.
For at få den mest værdifulde information fra din SQL Server-diagnostik, er det vigtigt først at identificere, hvad du håber at lære af dataene, så du overvåger de mest relevante præstationsmålinger. Her er fire tips til at hjælpe dig i gang.
Diagnostisk mål:Overvåg databaseydeevne for lokale, virtuelle og cloud-miljøer
Uanset om dine databaser er placeret på stedet, i skyen eller i et hybridt miljø, vil overvågning af databaseydelsen i disse fem områder advare dig om nogle af de mest almindelige ydeevneproblemer:
- Tilgængelighed:At opretholde høj tilgængelighed er en af DBA's topprioriteter. Sporing af failover-klyngelogdata og nuværende serverstatus er nøglen til at opdage og rette problemer tidligt.
- TempDB-brug:Hold øje med, hvor meget TempDB du bruger, og hvordan det bliver brugt. Det er også tilrådeligt at oprette en TempDB-baseline og trække præstationsdata før og efter ændringer.
- I/O:SQL Server-diagnostik vil afdække fastsiddende I/O-operationer, der kan forårsage blokering og andre ydeevneproblemer.
- CPU-brug:Højt CPU-forbrug kan skyldes flere ting. Brug SQL Server-diagnostik til at isolere årsagen. Denne tjekliste kan pege dig i den rigtige retning.
- Hukommelsesbrug:Hvis du ikke optimerer hukommelsesforbruget, vil du have problemer med ydeevnen på et tidspunkt. Kør diagnostik for at bestemme, hvilke processer der bruger mere end deres andel af hukommelsen, og optimer eller omskriv dem efter behov.
Diagnostisk mål:Find årsagerne til blokeringer og dødvande
Blokke og deadlocks er fremragende præstationsdræbere, så diagnosticering af, hvad der forårsager blokeringer og hurtig løsning af problemet, er afgørende for at opretholde høj ydeevne. Flere almindelige kilder til blokeringer og dødvande kan udryddes via disse tre metoder:
- Undersøg forespørgsler og forespørgselsplaner:Lange forespørgsler og ineffektive forespørgselsplaner bidrager til blokeringer og dødvande. Diagnostik kan identificere forespørgsler, der kan opdeles i flere korte transaktioner, og hvilke forespørgselsplaner, der ikke er optimeret som følge af forældede statistikker.
- Analyser arbejdsbyrden:En stigning i arbejdsbyrden kan forårsage blokeringer, da flere processer kæmper om de samme ressourcer. Diagnostik kan lokalisere, hvilken bruger, database, vært eller SQL Server-sætning, der forårsager blokeringen eller deadlock, så du kan omfordele arbejdsbyrden efter behov.
- Tjek indekser:God indeksering kan forhindre blokeringer ved at fjerne behovet for fulde tabelscanninger. Ved at tillade SQL Server at søge i stedet for at scanne, holder indeksering ikke-låste ressourcer tilgængelige.
Diagnostisk mål:Adresser falske advarsler
Falske advarsler er mere end bare irriterende; de bidrager til uopdagede præstationsproblemer via alarmtræthed. Alarmtræthed opstår, når hyppige falske alarmer får en DBA til at ignorere advarsler og muligvis mangler en meddelelse om, at der er opstået en kritisk fejl.
Den bedste måde at stoppe falske alarmer på er at diagnosticere kilderne til tilbagevendende falske alarmer og enten fjerne ikke-kritiske alarmer eller indstille tærskler, der snævert specificerer de forhold, der udløser en alarm.
Diagnostisk mål:Optimering af SQL-forespørgsler
At køre regelmæssig SQL Server-diagnostik på forespørgsler vil hjælpe med at reducere eller eliminere en lang række potentielle ydeevneproblemer. To måder, hvorpå du kan forbedre forespørgsler baseret på SQL Server-diagnostik, er:
- Justering af forespørgsler:Hvis dit værktøj til overvågning af SQL Server-ydelse viser, at en rapport tager evigheder at generere, at der har været en stor stigning i I/O-ventetiden for nylig, eller at visse job tager tre gange så lang tid at køre som de gjorde for et år siden, kan diagnostik indikere, at forespørgselsindstilling er i orden. Forespørgselsjustering forbedrer ydeevnen ved at analysere forespørgsler og derefter omskrive dem, hvis det er nødvendigt, indtil de kører på deres maksimale effektivitetsniveau.
- Opdatering af statistik:Som nævnt ovenfor bidrager forældede statistikker til ydeevneproblemer ved at udløse ineffektive forespørgselsplaner. Planlæg automatiske opdateringer, hvor det er muligt. Når automatisering ikke er mulig, kan du tilføje manuelle opdateringer til din almindelige vedligeholdelsestjekliste for at sikre, at statistik forbliver opdateret.
SQL Server-diagnostik er et væsentligt værktøj i DBA’s værktøjskasse. At forstå, hvordan diagnostik bidrager til at opretholde et pålideligt SQL Server-databasemiljø med høj tilgængelighed, vil hjælpe dig med at finde og løse problemer med ydeevnen hurtigt med minimal effekt på dine brugere.