sql >> Database >  >> RDS >> Sqlserver

4 tips voor het uitvoeren van SQL Server-diagnose

Hoogpresterende databases met hoge beschikbaarheid zijn het doel van elke SQL Server DBA, maar de realiteit is dat de databaseprestaties niet altijd optimaal zijn. Trage responstijden, time-outs en vastgelopen CPU's overkomen de besten van ons, waardoor het strategisch configureren van SQL Server-diagnose een cruciale stap is in het onderhouden van een efficiënt, goed functionerend systeem.

Diagnostiek van SQL Server zal prestatieproblemen met betrekking tot geheugengebruik, querysnelheid en efficiëntie en CPU-gebruik aan het licht brengen, waardoor u problemen snel kunt identificeren en oplossen met een minimaal effect op de prestaties. Om de prestatie-impact verder te minimaliseren, kunt u een prestatiebewakingsstrategie maken die het volgen van diagnostische gegevens in de loop van de tijd omvat om moeilijk te lokaliseren problemen op te sporen en toekomstige prestatieproblemen te voorspellen voordat ze zich voordoen.

Om de meest waardevolle informatie uit uw SQL Server-diagnose te halen, is het belangrijk om eerst vast te stellen wat u van de gegevens hoopt te leren, zodat u de meest relevante prestatiestatistieken kunt bewaken. Hier zijn vier tips om u op weg te helpen.

Diagnostisch doel:databaseprestaties bewaken voor lokale, virtuele en cloudomgevingen

Of uw databases nu on-premises, in de cloud of in een hybride omgeving zijn ondergebracht, het bewaken van de databaseprestaties op deze vijf gebieden zal u wijzen op enkele van de meest voorkomende prestatieproblemen:

  • Beschikbaarheid:het handhaven van een hoge beschikbaarheid is een van de topprioriteiten van de DBA. Het bijhouden van loggegevens van het failovercluster en de huidige serverstatus zijn de sleutel tot het vroegtijdig detecteren en corrigeren van problemen.
  • TempDB-gebruik:houd in de gaten hoeveel TempDB u gebruikt en hoe het wordt gebruikt. Het is ook raadzaam om een ​​TempDB-basislijn te maken en prestatiegegevens op te halen voor en na wijzigingen.
  • I/O:SQL Server-diagnose zal vastzittende I/O-bewerkingen aan het licht brengen die blokkering en andere prestatieproblemen kunnen veroorzaken.
  • CPU-gebruik:een hoog CPU-gebruik kan door verschillende dingen worden veroorzaakt. Gebruik SQL Server-diagnose om de hoofdoorzaak te isoleren. Deze checklist kan je in de goede richting wijzen.
  • Geheugengebruik:als u het geheugengebruik niet optimaliseert, krijgt u op een bepaald moment prestatieproblemen. Voer diagnostiek uit om te bepalen welke processen meer dan hun deel van het geheugen gebruiken en optimaliseer of herschrijf ze indien nodig.

Diagnostisch doel:de oorzaken van blokkades en impasses vinden

Blokkades en impasses zijn de beste prestatiemoordenaars, dus het is essentieel om de oorzaak van blokkades te diagnosticeren en het probleem snel op te lossen om hoge prestaties te behouden. Verschillende veelvoorkomende bronnen van blokkades en impasses kunnen worden geëlimineerd via deze drie praktijken:

  • Bekijk query's en queryplannen:lange query's en inefficiënte queryplannen dragen bij aan blokkades en impasses. Diagnostiek kan query's identificeren die kunnen worden opgesplitst in meerdere korte transacties en welke queryplannen niet zijn geoptimaliseerd als gevolg van verouderde statistieken.
  • Werklast analyseren:een toename van de werklast kan blokkades veroorzaken omdat meer processen strijden om dezelfde bronnen. Diagnostiek kan bepalen welke gebruiker, database, host of SQL Server-instructie de blokkering of impasse veroorzaakt, zodat u de werklast indien nodig opnieuw kunt verdelen.
  • Indexen controleren:een goede indexering kan blokkeringen voorkomen door de noodzaak voor volledige tabelscans weg te nemen. Door SQL Server toe te staan ​​te zoeken in plaats van te scannen, houdt indexering niet-vergrendelde bronnen toegankelijk.

Diagnostisch doel:valse waarschuwingen adresseren

Valse meldingen zijn meer dan alleen vervelend; ze dragen bij aan onopgemerkte prestatieproblemen via alarmmoeheid. Alarmmoeheid treedt op wanneer frequente valse alarmen ervoor zorgen dat een DBA waarschuwingen negeert en mogelijk een melding mist dat er een kritieke storing is opgetreden.

De beste manier om valse waarschuwingen te stoppen, is door de bronnen van terugkerende valse waarschuwingen te diagnosticeren en niet-kritieke waarschuwingen te verwijderen of drempels in te stellen die de voorwaarden specificeren die een waarschuwing veroorzaken.

Diagnostisch doel:SQL-query's optimaliseren

Door regelmatig SQL Server-diagnose uit te voeren op query's, kunnen tal van potentiële prestatieproblemen worden verminderd of geëlimineerd. Twee manieren waarop u query's kunt verbeteren op basis van SQL Server-diagnose zijn:

  • Afstemming van query's:als uw hulpprogramma voor het bewaken van de prestaties van SQL Server laat zien dat het genereren van een rapport eeuwen duurt, dat er onlangs een enorme piek is geweest in de I/O-wachttijd of dat het uitvoeren van bepaalde taken drie keer zo lang duurt als ze een jaar geleden deden, kan diagnostiek erop wijzen dat het afstemmen van zoekopdrachten in orde is. Het afstemmen van query's verbetert de prestaties door query's te analyseren en ze indien nodig opnieuw te schrijven totdat ze op hun maximale efficiëntie worden uitgevoerd.
  • Statistieken bijwerken:zoals hierboven vermeld, dragen verouderde statistieken bij aan prestatieproblemen door inefficiënte queryplannen te activeren. Plan waar mogelijk geautomatiseerde updates. Als automatisering niet mogelijk is, voegt u handmatige updates toe aan uw checklist voor regelmatig onderhoud om ervoor te zorgen dat de statistieken actueel blijven.

SQL Server-diagnostiek is een essentieel hulpmiddel in de toolbox van de DBA. Als u begrijpt hoe diagnostiek bijdraagt ​​aan het onderhouden van een betrouwbare SQL Server-databaseomgeving met hoge beschikbaarheid, kunt u prestatieproblemen snel vinden en oplossen met minimaal effect op uw gebruikers.


  1. hoe het slaapstand-configuratiebestand voor sql-server te configureren

  2. Hoe de sortering van een kolom in SQL Server (T-SQL) in te stellen

  3. DevOps:DBA of Developer – De juiste balans vinden

  4. Een tekenreeks converteren naar een datum/tijd in SQL Server met behulp van CAST()