sql >> Database >  >> RDS >> Sqlserver

Top 10 veelgestelde vragen over prestatiebewaking van SQL Server

Het monitoren van SQL Server-prestaties wordt door veel databasebeheerders als hun belangrijkste verantwoordelijkheid beschouwd. Aangezien slecht presterende servers niet alleen een negatieve invloed kunnen hebben op de interne bedrijfsvoering, maar ook op klantgerichte applicaties, zijn het volgen van SQL-prestaties en het snel oplossen van problemen van cruciaal belang voor het succes en de winstgevendheid van het bedrijf.

Naarmate meer organisaties zich tot SQL Server wenden, zijn DBA's steeds meer op zoek naar middelen om hen te helpen bij het implementeren van een solide strategie voor prestatiebewaking. Er is een overvloed aan documentatie beschikbaar om DBA's te helpen hun SQL Server-prestatiebewaking een vliegende start te geven, maar er zijn een paar universele vragen waarop bijna elke DBA een snel antwoord wil. Hier zijn antwoorden op 10 van de meest gestelde vragen over het monitoren van SQL Server-prestaties.

Wat is prestatiebewaking van SQL Server?

Het belangrijkste doel van prestatiebewaking van SQL Server is om consistente prestaties en hoge beschikbaarheid van SQL Server-instanties te garanderen. Prestatiebewaking is een proces dat uit twee delen bestaat en beide delen zijn essentieel om uw systeem optimaal te laten functioneren:

  • Bewaking: Volg een breed scala aan prestatiestatistieken tegen vooraf ingestelde drempels om afwijkend gedrag te identificeren en een mechanisme te bieden om de DBA te informeren met alarmen die specifiek zijn voor het probleem en voldoende context bieden om het diagnostische proces te starten.

  • Diagnose: De workflow en tools die nodig zijn om de bron van een prestatieprobleem vast te stellen en de gegevens die nodig zijn om het onmiddellijke probleem op te lossen.

  • Analyse van de hoofdoorzaak: De inzichten om verder te kijken dan de symptomen en onderliggende problemen te identificeren die het probleem hebben veroorzaakt en ervoor kunnen zorgen dat het opnieuw optreedt.

  • Trendanalyse: Kijk naar de prestaties over langere perioden. Gebruik trendanalyse om problemen te identificeren voordat ze zich voordoen, dus maak onderscheid tussen eenmalige en terugkerende problemen of om de werklastgrenzen in de loop van de tijd te onderzoeken. Dit laatste kan worden gebruikt om toekomstige infrastructuurbehoeften te voorspellen, consolidatie-inspanningen te informeren of de juiste grootte voor geplande cloudmigratie te geven.

Welke tools voor het monitoren van databaseprestaties zijn het beste?

Het aantal databases waarvoor een DBA verantwoordelijk is, maakt handmatige controle en diagnostiek onpraktisch - misschien zelfs onmogelijk. Gelukkig zijn de nieuwste softwareoplossingen voor prestatiebewaking uitgerust met een groot aantal functies om prestatiebewaking beheersbaar te maken, zelfs op grote schaal:

  • Effectief alarmbeheer: Door prioriteit te geven aan alarmen, kunt u eerst de grote problemen aanpakken en valse alarmen negeren.

  • Uitgebreide diagnostiek: Met de beste hulpprogramma's voor prestatiebewaking kunt u diep in de diagnostiek duiken. Weten dat er een probleem is, is lang niet zo nuttig als weten hoe je het kunt oplossen.

  • Snelle tijd om te waarderen: Elke instantie verzamelt honderden metrische gegevens en het ter plaatse opslaan ervan wordt snel duur. Overweeg een van de SaaS-oplossingen voor prestatiebewaking voor kostenbesparingen en schaalbaarheid.

  • Analyse: Robuuste analyses zijn een belangrijke onderscheidende factor tussen tools voor prestatiebewaking. Voor een maximale impact op de prestaties selecteert u een tool die uitgebreide statistieken biedt voor werkbelasting, queryplan, hoofdoorzaak van alarmen en blokkering.

  • Historische gegevens bijhouden: Zoek naar een tool voor prestatiebewaking die historische gegevens opslaat. Dit versnelt het oplossen van problemen, omdat u weet of een probleem zich herhaalt en hoe problemen in de loop van de tijd worden gevolgd.

  • Afstemming en optimalisatie van queryplan: Met een tool met ingebouwde kunstmatige intelligentie kunt u zoekopdrachten verfijnen en optimaliseren voor een specifieke instantie.

  • Gezondheidscontroles: Gezondheidscontroles bewaken de vitale functies van SQL Server om u te laten weten dat u mogelijk een probleem heeft, soms zelfs voordat het probleem bestaat.

Als u een tool wilt met alle hierboven besproken functies, moet u kijken naar een van de cloudgestuurde SQL Server-oplossingen voor prestatiebewaking. Deze monitoringtools zijn ongeëvenaard in schaalbaarheid, flexibiliteit en prijs en bieden een veilig platform voor prestatiemonitoring om aan elke behoefte te voldoen.

Wat is de beste manier om de monitoring van databaseprestaties te optimaliseren?

Een van de beste manieren om prestatiebewaking te optimaliseren, is automatisering. Door veelvoorkomende taken te automatiseren, zoals het bewaken van schijfruimte, het inspecteren van foutenlogboeken en het verifiëren van de databaseback-ups, zorgt u ervoor dat deze taken worden voltooid, waardoor de DBA meer tijd heeft om waardevoller werk te doen.

Daarnaast kunt u het volgende implementeren om uw SQL Server-prestatiebewaking te optimaliseren:

  • Mobiele controle: Mobiele monitoring is beschikbaar vanaf uw Android- en iOS-apparaten. Met heatmaps, slimme alarmen en alarmlijsten, mobiele prestatiebewaking stelt u in staat om problemen te diagnosticeren en vanaf elke locatie te beginnen met triage.

  • Afstemming en zoekopdrachtoptimalisatie: Met prestatieafstemming kunt u uw SQL-query- en uitvoeringsplannen visualiseren, analyseren en optimaliseren door de operators met de hoogste kosten te benadrukken, voorgestelde oplossingen voor problemen aan te bieden en uw query's en queryplan te herschrijven/optimaliseren.

  • Gezondheidscontroles: Met statuscontroles kunt u uw prestatiebewaking optimaliseren door gezondheidsproblemen binnen elk SQL Server-exemplaar op te sporen, inclusief lange wachttijden en I/O-latentie. Statuscontroles bieden ook historische gegevens, zodat u prestatieproblemen in de loop van de tijd kunt volgen.

Hoe moet ik een SQL Server-monitoringtool kiezen?

Er zijn twee belangrijke overwegingen bij het kiezen van een tool voor het bewaken van de prestaties van SQL Server.

Wat voor gereedschap zoekt u?

Er zijn drie primaire soorten prestatiebewakingstools om te overwegen:

  • Op maat/in-house gebouwd: Houd er in dit geval rekening mee dat het feit dat u iets kunt doen, niet altijd betekent dat u het ook moet doen. Ja, u kunt een interne tool voor prestatiebewaking samenstellen om statistieken te verzamelen met behulp van PerfMon, traces, DMV's en XEvents. Maar de nadelen wegen ruimschoots op tegen de voordelen van het nemen van deze route. Het is niet schaalbaar, dus naarmate uw instanties toenemen, lijden uw prestatiebewakingsmogelijkheden. Het is ook niet mogelijk om alle dingen te controleren die u moet bekijken om optimale SQL Server-prestaties te garanderen. Zodra u begint met het verzamelen van gegevens, moet u deze ergens opslaan om nuttig te zijn, en dat kan duur worden. Waar het op neerkomt - is het waardevoller voor u om uw kostbare tijd te besteden aan het bouwen en onderhouden van een prestatiebewakingstool of om het te besteden aan het repareren en afstemmen van bedrijfskritieke werklasten.

  • Gratis/open source: Dit is mogelijk een betere keuze dan het maken van uw eigen oplossing voor prestatiebewaking, maar er zijn nog steeds beperkingen. Hoewel u een beetje maatwerk krijgt, ontbreekt het u nog steeds aan dekking en vooraf geconfigureerde waarschuwingen. U moet ook nog steeds voor uw eigen gegevensopslagruimte zorgen. Het is een complex proces om een ​​tool te bouwen die effectief grote hoeveelheden prestatiegegevens kan vastleggen zonder de bewaakte server te beïnvloeden, de juiste drempels in te stellen voor honderden meetwaarden, grote hoeveelheden verzamelde gegevens te beheren en deze vervolgens up-to-date te houden vanuit één versie van SQL-server naar de volgende. Richt uw tijd op het oplossen van problemen en niet op het bouwen van prestatiebewakingssystemen. Als u afhankelijk bent van community-updates, kan ondersteuning voor nieuwe versies van een databaseplatform de release vertragen.

  • Commercieel: Commerciële tools voor het monitoren van SQL-prestaties bieden een scala aan functies en aanpassingsniveaus, en vele zijn verrassend betaalbaar. Commerciële tools vergemakkelijken prestatiebewaking met opties zoals gezondheidscontroles, alarmbeheer, prestatiediagnose en mobiele bewakingsmogelijkheden - functies die u niet krijgt van gratis tools of die intern zijn ingebouwd.

Wat zijn uw behoeften voor uw specifieke omgeving?

Stel uzelf de volgende vragen voordat u een tool voor prestatiebewaking kiest, zodat u de tool kunt vinden die aan uw specifieke behoeften voldoet:

  • Hoeveel instanties wilt u controleren?

  • Zijn ze bij elkaar geplaatst of verspreid?

  • Zijn ze on-premise of in de cloud (of beide)?

  • Kunt u een forfaitair bedrag betalen voor infrastructuur en licenties, of moet u de kosten spreiden?

  • Heeft u infrastructuur- en database-instances beschikbaar om aan een monitoringtool te besteden?

  • Heeft u intern tijd of middelen om de monitoringinfrastructuur te bouwen en te onderhouden?

  • Heeft de tool de mogelijkheid om de werklast op meerdere dimensies direct te ontleden, zodat u uren aan scripting kunt besparen?

  • Is er een slimme mogelijkheid om de gegevens te analyseren en u te helpen bij het identificeren van specifieke problemen?

  • Biedt de tool directe diagnostiek, best practices of diagnose aan de relevante drill-down?

Wat is de beste manier om de status van de databaseprestaties te controleren?

Er zijn verschillende tekenen dat uw SQL Server niet in orde is, waaronder:

  • Algemene vertraging van de werkdruk

  • Time-outs voor verbinding/query's

  • Overmatig CPU-gebruik

  • Geheugendruk

  • Overmatige I/O-lees-/schrijflatentie

  • Overmatig transactielogboek of TempDB-grootte

Als u een van deze symptomen opmerkt, is het tijd om gezondheidscontroles in te stellen om uw systeem weer topprestaties te laten leveren. Enkele eerste stappen die u kunt nemen om de oorzaak van prestatieproblemen te identificeren, zijn:

  • Een prestatie-baseline vaststellen en ertegen meten

  • Back-ups verifiëren

  • Controleren op ontbrekende indexen

  • Bepalen welk percentage van de werklast afkomstig is van ad-hocquery's

Wat zijn de beste metrische gegevens voor het monitoren van SQL Server-prestaties?

Er zijn honderden metrische gegevens die u kunt meten om u te helpen de prestaties bij te houden en te verbeteren, maar er zijn een paar opvallende punten die deel moeten uitmaken van elk onderhoudsplan voor SQL Server. Hier zijn enkele van de belangrijkste gebieden die u moet controleren en de statistieken die u in de gaten wilt houden:

  • Indexen. Indexen zijn een veelvoorkomende bron van prestatieproblemen, omdat databases voortdurend veranderen. Gegevens worden toegevoegd en verwijderd, en indexen worden gewijzigd en verwijderd, wat allemaal bijdraagt ​​aan slechte prestaties. Dit zijn de statistieken om naar te kijken:

    • Vulfactor
    • I/O
    • Fragmentatie
  • Buffercache. Het is belangrijk om de buffercache te configureren om de tijdsduur dat pagina's daar blijven te optimaliseren zonder het te overdrijven en geheugen in beslag te nemen dat elders nodig is. Dit zijn de statistieken om naar te kijken:

    • Levensverwachting van pagina
    • Buffer cache hit ratio
  • T-SQL. In plaats van ad hoc SQL-instructies uit te voeren, worden ze door SQL Server gegroepeerd, gecompileerd in een uitvoeringsplan en in de cache opgeslagen, waarbij de instructies indien nodig opnieuw worden gecompileerd. Overmatige compilaties en hercompilaties kunnen de prestaties verslechteren. Dit zijn de statistieken om naar te kijken:

    • SQL-compilaties
    • SQL hercompilaties
  • Andere statistieken om goed in de gaten te houden:

    • Vergrendelt wachttijden en geblokkeerde processen
    • CPU-gebruik

Wat zijn veelvoorkomende problemen bij het monitoren van databaseprestaties?

Prestatieknelpunten

Prestatieknelpunten manifesteren zich als trage of niet-reagerende databases. Knelpunten kunnen lastig te lokaliseren zijn, omdat ze geheugen-, opslag- of processorgerelateerd kunnen zijn. Er zijn echter een paar plaatsen waar u eerst naar problemen moet zoeken:

  • WRITELOG wachttijd
  • NESTE LUS AANMELDEN
  • TempDB-conflict

Lage levensverwachting voor pagina's (PLE)

Lage PLE doet afbreuk aan de prestaties omdat SQL Server vaker naar de schijf moet om gegevensbestanden te vinden, wat veel langer duurt dan ze uit de buffercache te lezen.

Fragmentatie

Controleer uw indexen op overmatige fragmentatie. De prestaties van SQL Server lijden eronder wanneer het verspreide en gedeeltelijk gevulde pagina's moet doorzoeken om gegevens te vinden.

Hoe moet ik mijn monitoringsysteem voor databaseprestaties instellen?

Zodra u een oplossing voor het bewaken van de prestaties van SQL Server hebt gekozen, is het tijd om deze aan de slag te gaan. Hoewel je misschien meteen alle glimmende nieuwe functies wilt leren kennen, zal een stapje terug doen en het proces methodisch benaderen, ervoor zorgen dat je het meeste uit je systeem haalt. Hier zijn enkele tips voor de introductie van uw nieuwe prestatiebeheertool:

  • Bepaal welke instanties uw aandacht het meest nodig hebben

  • Doorloop de vereisten

  • Ken uw systeemvereisten

  • Download het installatieprogramma

  • Verbindingen toevoegen

Welke query's kan ik gebruiken voor het bewaken van de prestaties van SQL-servers?

De zoekopdrachten die u gebruikt voor prestatiebewaking, zijn afhankelijk van de statistieken die u bijhoudt. Het detecteren van geheugenproblemen, het beoordelen van indexdefragmentatie en het identificeren van onaanvaardbare wachttijden staan ​​echter waarschijnlijk bovenaan de checklist voor prestatiebewaking van elke DBA. De SQL Server-documentatie van Microsoft biedt details voor een aantal vragen om u te helpen bij het implementeren van uw plan voor prestatiebewaking:

  • Geheugengebruik

  • Index defragmentatie

  • Wachtstatistieken

Wat zijn de best practices voor het monitoren van databaseprestaties?

Sommige mensen zijn het niet eens met de term 'best practices', maar als het gaat om het monitoren van SQL Server-prestaties, is er geen argument dat een DBA bepaalde dingen moet doen om het systeem gezond en de gebruikers tevreden te houden.

Maak van indexonderhoud een prioriteit

Het negeren van uw indexen is een onfeilbare manier om prestatieproblemen te genereren. Indexen zijn de bron van veelvoorkomende prestatie-killers, waaronder fragmentatie en paginasplitsingen.

Ken uw werklast

Het is moeilijk om te weten wanneer je een probleem hebt als je niet weet hoe "normaal" eruit ziet. Neem de tijd om uw werklast te leren kennen door vragen te stellen als:

  • Wanneer is deze instantie het drukst?

  • Welke applicaties gebruiken deze instantie?

  • Wanneer was de laatste back-up?

  • Heeft deze instantie bekende prestatie-uitdagingen?

Kies een tool voor prestatiebewaking die aan uw specifieke behoeften voldoet

Voordat u zich vastlegt op een hulpprogramma voor prestatiebewaking van SQL Server, moet u eerst uw behoeften definiëren. Zodra u begrijpt wat u probeert te bereiken met uw prestatiebewakingstool, kunt u vol vertrouwen een oplossing zoeken met de functies die aan uw vereisten voldoen.

Prestatieknelpunten zoeken en oplossen

Voor de hand liggende symptomen van prestatieknelpunten zijn het gebruik van te veel geheugen, lange wachttijden, indexfragmentatie en te veel of te weinig indexen. Het snel vinden en oplossen van deze knelpunten is een van de primaire verantwoordelijkheden van een DBA. De beste manier om de databaseprestaties op peil te houden, is door een prestatiebewakingstool te implementeren waarmee u eenvoudig prestatieknelpunten en andere bronnen van prestatievermindering kunt lokaliseren en verhelpen.


  1. De Oracle-instantie afsluiten en starten

  2. Hoe INSERT-statements uit een query te genereren bij gebruik van SQLcl (Oracle)

  3. De geparametriseerde query verwacht de parameter die niet is opgegeven

  4. PostgreSql:Json Array naar rijen met behulp van Lateral Join