Inhoudsopgave verstoppen

1. Inleiding tot SQL Server Prestatiemeter

1.1 Wat is SQL Server Prestatiemonitor?

SQL Server Prestatiemonitor is het proces van het volgen, analyseren en beheren van de prestaties en de gezondheid van uw SQL Server Databases. Het omvat het verzamelen en interpreteren van gegevens over verschillende aspecten van uw databasesysteem om optimale prestaties te garanderen, problemen te voorkomen en de databasegezondheid te behouden.

Prestatiebewaking omvat het volgen van query-uitvoeringstijden, resourcegebruik, indexprestaties, blokkeringen en deadlocks, en databasegroeipatronen. Dit continue toezicht helpt beheerders potentiële problemen te identificeren voordat ze gevolgen hebben voor gebruikers of de bedrijfsvoering.

1.2 Belangrijkste voordelen van prestatiebewaking

effectief SQL Server prestatiemonitor biedt verschillende belangrijke voordelen:

  • Proactieve probleemdetectie: Identificeer en pak potentiële problemen aan voordat ze gevolgen hebben voor gebruikers of bedrijfsactiviteiten.
  • Prestatie-optimalisatie: Identificeer knelpunten en inefficiënties om de algehele databaseprestaties te verbeteren
  • Capaciteitsplanning: Voorspel de behoefte aan hulpbronnen en plan voor toekomstige groei op basis van historische gegevens
  • Naleving en veiligheid: Zorg voor naleving van wettelijke vereisten en detecteer verdachte activiteiten

1.3 Veelvoorkomende prestatie-uitdagingen

Zonder een goede prestatiemonitor voor SQL-databases lopen organisaties verschillende risico's:

  • Onverwachte downtime die de bedrijfsvoering verstoort
  • Slechte applicatieprestaties beïnvloeden de gebruikerservaring
  • Gegevensverlies of corruptie
  • Inefficiënt gebruik van hulpbronnen leidt tot onnodige kostenosts
  • Gefrustreerde gebruikers en mogelijk omzetverlies

Volgens een onderzoek van IDC uit 2023 is 65% van de databaseprestatieproblemen het gevolg van slechte monitoring- of optimalisatiepraktijken.

2. Windows Prestatiemeter (PerfMon) begrijpen

2.1 Wat is Windows Prestatiemeter?

Windows Prestatiemeter (PerfMon) is een ingebouwde Windows-tool die systeembronnen en applicatieprestaties bewaakt. SQL Server beheerders biedt PerfMon waardevolle inzichten in zowel het besturingssysteem als SQL Server statistieken, waardoor het essentieel is voor uitgebreide prestatieanalyses.

Windows Prestatiemeter (PerfMon)

PerfMon meet prestatiestatistieken met regelmatige tussenpozen en slaat deze statistieken op in bestanden voor latere analyse. Databasebeheerders kunnen het tijdsinterval, de bestandsindeling en de te monitoren statistieken selecteren. De tool is niet SQL Server-specifiek: systeembeheerders gebruiken het om Windows zelf, Exchange, bestandsservers en alle toepassingen die knelpunten kunnen ondervinden, te bewaken.

2.2 Prestatiemonitor starten

U kunt Prestatiemeter op verschillende manieren starten:

  1. Klik op het tabblad Starttype perfmon Klik in het zoekvak op 'Performand Monitor' in het zoekresultaat:
    Zoeken en start PerfMon vanuit het Windows-zoekvak.
  2. Druk op Windows + Rtype perfmonen druk op Enter
    Start PerfMon vanuit Windows run box.
  3. Navigeer naar Configuratiescherm -> Systeem en beveiliging -> Systeembeheer -> Prestatiemeter
    Start PerfMon via het Configuratiescherm -> Systeem en beveiliging -> Systeembeheer -> Prestatiemeter

3. essentieel SQL Server Prestatietellers

3.1 Geheugenprestatietellers

Geheugentellers zijn cruciaal voor het monitoren SQL Server prestaties, omdat ze aangeven of uw database over voldoende geheugenbronnen beschikt.

Beschikbare MBytes

Deze teller geeft de hoeveelheid fysiek geheugen aan die direct beschikbaar is voor toewijzing. Deze moet redelijk constant blijven en idealiter niet onder de 4096 MB komen. Lage waarden kunnen erop wijzen dat SQL ServerDe maximale geheugeninstelling van 's staat op de standaardwaarde, of niet-SQL Server toepassingen verbruiken geheugen.

Pagina Levensverwachting

De paginalevensverwachting meet hoe lang (in seconden) een pagina in de bufferpool blijft zonder te worden geraadpleegd. Een normale waarde is 300 seconden of langer. Lagere waarden duiden op geheugendruk en overmatige bufferomloop, waardoor de cache minder effectief wordt.

Buffercache-hitverhouding

Deze teller geeft het percentage dataverzoeken aan dat via de SQL-buffercache (geheugen) is beantwoord in plaats van via het lezen van de schijf. Dit percentage is doorgaans 99% of hoger. Lagere waarden suggereren dat SQL Server heeft meer geheugen nodig of is nog aan het opwarmen na een restart.

Geheugensubsidies in behandeling

Dit toont het aantal processen dat wacht op geheugen binnen SQL ServerOnder normale omstandigheden zou deze waarde consistent 0 moeten zijn. Hogere waarden duiden op onvoldoende geheugentoewijzing. SQL Server.

TarServergeheugen versus totaal servergeheugen verkrijgen

TarGet Server Memory geeft de ideale hoeveelheid geheugen aan SQL Server wil gebruiken. Totaal servergeheugen laat zien wat SQL Server momenteel gebruikt. De verhouding tussen deze waarden moet ongeveer 1 zijn. Aanzienlijke verschillen kunnen wijzen op geheugendruk of onvoldoende beschikbaar geheugen.

3.2 Processorprestatietellers

CPU-tellers helpen bij het identificeren van processorknelpunten en het begrijpen hoe SQL Server maakt gebruik van computerbronnen.

% processortijd

Dit meet het percentage verstreken tijd dat de processor besteedt aan het uitvoeren van niet-inactieve threads. Op actieve servers kunnen de waarden oplopen tot 100%, maar aanhoudend gebruik boven de 70-75% duidt meestal op prestatieproblemen voor gebruikers. Ontbrekende of ontoereikende indexen veroorzaken vaak een hoog CPU-gebruik.

% Bevoorrechte tijd

Processortijd wordt verdeeld in de gebruikersmodus en de geprivilegieerde (kernel) modus. Alle schijftoegang en I/O vinden plaats in de kernelmodus. Als deze teller hoger is dan 25%, voert het systeem waarschijnlijk te veel I/O uit. Normale waarden liggen tussen 5% en 10%.

Processorwachtrijlengte

Deze teller toont threads die wachten op CPU-bronnen. Waarden zijn consistent hoger dan 1 (behalve tijdens SQL Server (back-upcompressie) geven CPU-druk aan. Dit betekent vaak dat er andere applicaties op de computer zijn geïnstalleerd. SQL Server machine, wat in strijd is met de beste praktijken.

Contextwisselingen/sec

Dit meet hoe vaak de processor tussen threads schakelt. Overmatig contextschakelen kan de prestaties beïnvloeden en wijst op een hoge systeembelasting.

3.3 Schijf I/O-prestatietellers

Schijftellers zijn essentieel voor SQL-prestatiebewaking, aangezien schijf-I/O vaak de grootste bottleneck in databasesystemen vormt.

% Schijftijd

Hiermee wordt het percentage van de tijd geregistreerd dat de schijf bezig was met lees-/schrijfbewerkingen. Waarden die consistent boven de 85% liggen, duiden op een I/O-bottleneck. Omdat de schijf veel langzamer is dan het geheugen, verbetert het verlagen van deze waarde de prestaties.

Gemiddelde schijf sec/lezen en gemiddelde schijf sec/schrijven

Deze tellers meten de gemiddelde tijd (in seconden) voor lees- en schrijfbewerkingen. Als de gemiddelde waarden 10-20 ms overschrijden, duurt het te lang voordat de schijf gegevens verwerkt. Transactielogboeken vereisen bijzonder snelle schrijfprestaties.

Lengte van de schijfwachtrij

Dit geeft aan dat er openstaande verzoeken zijn om te lezen/schrijven naar de schijf. Waarden die consistent hoger zijn dan 2 (of 2 per schijf voor RAID-arrays) geven aan dat de schijf de I/O-verzoeken niet aankan.

Schijfbytes/sec

Hiermee wordt de snelheid van gegevensoverdracht van/naar de schijf bewaakt. Als deze de nominale capaciteit van de schijf overschrijdt, ontstaat er een gegevensachterstand, wat wordt aangegeven door de toenemende wachtrijlengte van de schijf.

Schijfoverdrachten/sec

Hiermee wordt het aantal lees-/schrijfbewerkingen op de schijf bijgehouden. SQL Server Gegevenstoegang is meestal willekeurig, wat trager is vanwege de beweging van de schijfkop. Zorg ervoor dat deze waarde onder de maximale capaciteit van uw schijf blijft (meestal 100/s voor standaardschijven).

3.4 SQL Server Specifieke tellers

3.4.1 Buffer Manager-tellers

Monitor van buffermanagertellers SQL ServerGeheugenbufferbewerkingen van 's:

  • Pagina leest/sec: Cumulatief aantal fysieke databasepagina's
  • Pagina schrijft/sec: Cumulatief aantal fysieke databasepagina's
  • Lui schrijft/sec: Aantal buffers geschreven door luie schrijver om geheugen vrij te maken
  • Controlepuntpagina's/sec: Pagina's die zijn doorgespoeld door een controlepunt of andere bewerkingen waarbij alle vuile pagina's moeten worden doorgespoeld

3.4.2 SQL-statistiekentellers

Deze tellers geven inzicht in SQL Server queryverwerking:

  • Batchverzoeken/sec: Aantal SQL-batchverzoeken ontvangen door de server. Dit dient als maatstaf voor serveractiviteit.
  • SQL-compilaties/sec: Aantal SQL-compilaties. Moet 10% of minder zijn van het totale aantal batchverzoeken/sec.
  • SQL-hercompilaties/sec: Aantal SQL-hercompilaties. Moet ook 10% of minder zijn van het totale aantal batchverzoeken/sec.

3.4.3 Algemene statistiekentellers

  • Gebruikersverbindingen: Aantal gebruikers dat met het systeem is verbonden. Wordt gebruikt als benchmark om de verbindingsgroei in de loop van de tijd te volgen.
  • Processen geblokkeerd: Huidig ​​aantal geblokkeerde processen. Idealiter zou dit 0 moeten zijn.

3.4.4 Geheugenbeheertellers

  • In afwachting van geheugensubsidies: Totaal aantal processen dat wacht op werkruimtegeheugentoekenning. Idealiter zou dit 0 moeten zijn.

4. Prestatiemonitor instellen voor SQL Server(Windows Vista / Server 2008 en later)

Allereerst moeten we een container maken om tellers gemakkelijker te kunnen beheren:

  • Voor Windows Vista/Server 2008 en latere versies kunt u in deze sectie gegevensverzamelaarsets maken.
  • Voor Windows XP/Server 2003 en eerdere versies kunt u tellerlogboeken maken in het volgende gedeelte.

4.1 Wat zijn datacollectorsets?

Datacollectorsets organiseren prestatietellers, event trace-gegevens en systeemconfiguratiegegevens in één verzameleenheid. Ze bieden meer flexibiliteit dan eenvoudige tellerlogs en maken geautomatiseerde, geplande gegevensverzameling mogelijk voor uitgebreide prestatiebewaking van SQL-databases.

4.2 Een gegevensverzamelaarset maken

Maak een aangepaste gegevensverzamelaarset om te monitoren SQL Server prestatietellers:

  1. Prestatiemonitor openen
  2. Uitvouwen Gegevensverzamelaarsets
  3. Klik met de rechtermuisknop User Defined
  4. Kies New -> Gegevensverzamelaarset
    Een nieuwe gegevensverzamelaarset maken in PerfMon
  5. Voer een beschrijvende naam in (bijv. "SQL Server Prestatiemetingen”)
  6. Kies Maak handmatig (geavanceerd)
    Geef een beschrijvende naam op voor de gegevensverzamelaarset
  7. Klik op het tabblad Volgende
  8. Check Gegevenslogboeken maken -> Prestatieteller
    Selecteer Gegevenslogboeken maken -> Prestatieteller in de wizard Nieuwe gegevensverzamelaarset maken.
  9. Klik op het tabblad Volgende
  10. Klik op het tabblad Toevoegen om tellers te selecteren
  11. Toevoegen gewenste SQL Server en systeemtellers.
    Voeg prestatietellers toe aan de nieuwe Data Collector Set.
  12. Zet Monsterinterval
    • Voor routinematige monitoring, gebruik 1 minuut (60 seconden)
    • Voor actieve probleemoplossing, gebruik 15-30 seconden
    • Vermijd het langdurig uitvoeren van hoogfrequente vastleggingen, aangezien deze de prestaties kunnen beïnvloeden en overmatige hoeveelheden gegevens kunnen genereren.

    Stel het steekproefinterval in de wizard Nieuwe gegevensverzamelaarset in.

  13. Klik op het tabblad Volgende
  14. Kies de locatie waar de logs moeten worden opgeslagen
    Stel de locatie in waar de prestatiegegevens moeten worden opgeslagen in de wizard Nieuwe gegevensverzamelaarset.
  15. Klik op het tabblad Voltooien, wordt er een nieuwe Data Collector Set aangemaakt.
  16. Standaard zal de nieuwe Data Collector Set NIET zijn starautomatisch geladen. Je vindt het in het linkerpaneel, onder Prestaties -> Gegevensverzamelaarsets -> User Defined -> Uw gegevensverzamelaar, klik er met de rechtermuisknop op en kies Start
    Stareen nieuwe Data Collector Set in PerfMon.

4.3 Sleuteltellers om toe te voegen

  • Geheugen -> Beschikbare MBytes
  • Fysieke schijf -> Gemiddelde schijf sec/Lezen (alle instanties behalve _Total)
  • Fysieke schijf -> Gemiddelde schijf sec/schrijfsnelheid (alle instanties behalve _Total)
  • Fysieke schijf -> Schijflezingen/sec (alle instanties behalve _Total)
  • Fysieke schijf -> Schijfschrijfbewerkingen/sec (alle instanties behalve _Total)
  • Processor -> % processortijd (alle instanties behalve _Total)
  • SQLServer: Algemene statistieken -> Gebruikersverbindingen
  • SQLServer: Geheugenbeheer -> Geheugentoekenningen in behandeling
  • SQLServer: SQL-statistieken -> Batchverzoeken/sec
  • SQLServer: SQL-statistieken -> SQL-compilaties/sec
  • SQLServer: SQL-statistieken -> SQL-hercompilaties/sec
  • Systeem -> Processorwachtrijlengte

4.4 Stopvoorwaarden instellen

Stopvoorwaarden configureren om onbeperkte gegevensgroei te voorkomen:

  1. Nadat u de gegevensverzamelaarset hebt gemaakt, klikt u er met de rechtermuisknop op en selecteert u Aanbod
  2. Klik op de knop Stopconditie .
  3. Enable Totale duur
  4. Stel de duur in op 1 dag (24 uur)
  5. Klik op het tabblad OK opslaan

Stel de stopvoorwaarde in voor de gegevensverzamelaarset

Hierdoor wordt ervoor gezorgd dat het logboek niet te groot wordt en automatisch opnieuw wordt opgeslagen.tarts indien gepland.

4.5 Gegevensverzameling plannen

Automatiseer gegevensverzameling om consistente monitoring te garanderen:

  1. Klik met de rechtermuisknop op uw gegevensverzamelaarset en selecteer Aanbod
  2. Klik op de knop Programma .
  3. Klik op het tabblad Toevoegen een nieuw schema maken
  4. Configureren stardatum en tijd
  5. Stel een herhalingspatroon in (bijv. dagelijks)
  6. Klik op het tabblad OK om het schema op te slaan

Stel het schema in voor de Data Collector Set

Voor automatische startup, configureer de Data Collector Set naar start wanneer de server opstart door als volgt te werk te gaantartup-trigger in Windows Taakplanner.

5. Prestatiemonitor instellen voor SQL Server(Windows XP / Server 2003 en eerder)

Voor Windows XP/Server 2003 en eerdere versies kunt u tellerlogboeken maken, waarmee u een set prestatiemeters kunt selecteren en deze periodiek in een bestand kunt vastleggen.

5.1 Tellerlogboeken maken

Volg deze stappen om een ​​nieuw tellerlogboek te maken:

  1. Prestatiemonitor openen
  2. Uitvouwen Prestatielogboeken en signalen in het linkerdeelvenster
  3. Klik met de rechtermuisknop Tellerlogboeken
  4. Kies Nieuwe loginstellingen
  5. Geef het logboek de naam van uw databaseserver (bijvoorbeeld 'ProductionSQL01')
  6. Klik op het tabblad OK om met de configuratie te beginnen

Door voor elke server aparte tellerlogboeken te maken, kunt u de prestaties op afzonderlijke servers testen zonder dat u voor alle servers tegelijk gegevens hoeft te verzamelen.

5.2 Prestatietellers toevoegen

Nadat u een tellerlogboek hebt gemaakt, voegt u de specifieke prestatietellers toe die u wilt bewaken:

  1. Klik op de knop Tellers toevoegen
  2. Wijzig de computernaam zodat deze naar uw computer verwijst SQL Server instantie
  3. Druk op Tab om beschikbare prestatieobjecten te laden
  4. Selecteer een prestatieobject uit de vervolgkeuzelijst (bijv. Geheugen)
  5. Kies specifieke tellers uit de lijst
  6. Selecteer instanties indien van toepassingcable (bijv. individuele processors of schijven)
  7. Klik op het tabblad Toevoegen om de teller op te nemen
  8. Herhaal dit voor alle gewenste tellers
  9. Klik op het tabblad Sluiten wanneer je klaar bent

5.3 Voorbeeldintervallen configureren

Het steekproefinterval bepaalt hoe vaak Prestatiemonitor gegevens verzamelt. Configureer geschikte intervallen op basis van uw monitoringbehoeften:

  1. Zoek in de eigenschappen van het tellerlogboek naar Voorbeeldgegevens elke
  2. Stel het interval in (standaard is 15 seconden)
  3. Voor basislijnbewaking gebruikt u intervallen van 1 minuut voor dagelijkse verzameling
  4. Gebruik voor het oplossen van problemen intervallen van 15-30 seconden voor korte uitbarstingen
  5. Klik op het tabblad OK toepassen

Houd er rekening mee dat kleinere intervallen meer data genereren, die lastiger te renderen en analyseren kunnen zijn. Grotere intervallen kunnen belangrijke pieken missen. Zorg voor een goede balans tussen datagranulariteit en opslag- en analysevereisten.

5.4 Logbestanden configureren

Een goede configuratie van logbestanden zorgt ervoor dat gegevens efficiënt en toegankelijk worden opgeslagen:

  1. Klik op de knop Logbestanden tabblad in teller log eigenschappen
  2. Wijzig het logbestandstype naar Tekstbestand (door komma's gescheiden) voor eenvoudige Excel-import
  3. Klik op het tabblad Configure
  4. Stel het bestandspad in op een toegewezen locatie (bijvoorbeeld een gedeelde PerformanceLogs-map)
  5. Klik op het tabblad OK bevestigen

Gebruik een via het netwerk toegankelijke share voor het opslaan van logboeken, zodat u op afstand toegang hebt tot bestanden en deze kunt delen met andere gebruikers.

5.5 Inloggegevens instellen

Configureer de juiste referenties zodat Prestatiemonitor op afstand toegang heeft SQL Server gevallen:

  1. Zoek in de eigenschappen van het tellerlogboek naar Rennen als
  2. Voer de gebruikersnaam van uw domein in het volgende formaat in: DOMEIN\gebruikersnaam
  3. Klik op het tabblad Wachtwoord instellen
  4. Voer uw wachtwoord in en bevestig het
  5. Klik op het tabblad OK opslaan

Hierdoor kan de PerfMon-service statistieken verzamelen op basis van uw domeinmachtigingen in plaats van de eigen inloggegevens.

6. Prestatiemonitorgegevens analyseren

6.1 Logbestanden bekijken in Prestatiemeter

Met Prestatiemonitor kunt u historische gegevens uit opgeslagen logbestanden weergeven:

  1. Prestatiemonitor openen
  2. Klik in het linkerdeelvenster op Monitoring tools -> Prestatiemeter.
  3. Klik met de rechtermuisknop ergens in het grafiekgebied
  4. Kies Aanbod
    Open eigenschappen in PerfMon door met de rechtermuisknop ergens in het grafiekgebied te klikken.
  5. Klik op de knop Bron  .
  6. Kies Logboek bestanden Radio knop
  7. Klik op het tabblad Toevoegen
  8. Navigeer naar uw logbestand (.blg of .csv)
  9. Selecteer het bestand en klik op Openen
    Stel het logbestand in als bron van de afbeelding in PerfMon.
  10. Gebruik de knop Tijdsbestek schuifregelaar om de periode te selecteren die u wilt analyseren
  11. Klik op het tabblad OK om het dialoogvenster Eigenschappen te sluiten
  12. Klik op het groene pluspictogram om tellers uit het logbestand toe te voegen
    Klik op het groene pluspictogram om tellers uit het logbestand in PerfMon toe te voegen.
  13. Selecteer de gewenste tellers om weer te geven
    Voeg de gewenste tellers toe aan de afbeelding in PerfMon.
  14. Klik op het tabblad OK

De grafiek toont nu historische gegevens uit het logbestand. Gebruik de schuifbalk Tijdsbereik in Eigenschappen om specifieke tijdsperioden te verfijnen voor een gedetailleerde analyse.

6.2 Gegevens exporteren naar Excel

Excel biedt krachtige analysemogelijkheden voor prestatiemetergegevens:

  1. Open Prestatiemeter met uw logbestand geladen
  2. Klik met de rechtermuisknop ergens in het grafiekgebied
  3. Kies Gegevens opslaan als
  4. Kies een locatie voor het bestand
  5. Kies Tekstbestand (door komma's gescheiden) (.csv) uit de vervolgkeuzelijst
  6. Klik op het tabblad Opslaan
  7. Open het CSV-bestand in Excel

Exporteer de gegevens naar een bestand in PerfMon.

Formatteer de geëxporteerde gegevens voor een betere analyse:

  1. Verwijder de halflege rij 2 en wis cel A1
  2. Kolom A opmaken als Datum/Tijd
  3. Numerieke kolommen opmaken met decimalen nul en scheidingsteken voor duizendtallen
  4. Zoek en vervang servernamen in headers (vervang bijvoorbeeld “\\SERVERNAME” door een lege regel)
  5. Ruim objectnamen op in headers (bijvoorbeeld 'Geheugen', 'Fysieke schijf', 'Processor')
  6. Verklein de lettergrootte van de koptekst naar 8 punten voor betere zichtbaarheid

6.3 Tellerwaarden interpreteren

6.3.1 Geheugentelleranalyse

Let bij het analyseren van geheugentellers op de volgende indicatoren:

  • Beschikbare MBytes: Moet consequent boven de 4096 MB blijven
  • Pagina Levensverwachting: Waarden boven de 300 seconden duiden op een gezond geheugen. Lagere waarden duiden op geheugendruk.
  • Buffercache-hitverhouding: Moet 99% of meer bedragen. Lagere waarden duiden op overmatig schijflezen.
  • In afwachting van geheugensubsidies: Moet altijd 0 zijn. Elke positieve waarde geeft geheugen aantarvatie

6.3.2 CPU-telleranalyse

CPU-prestatie-indicatoren omvatten:

  • % Processortijd: Aanhoudend gebruik boven de 75% duidt op prestatieproblemen. Pieken tot 100% zijn normaal, maar zouden niet aanhouden.
  • Processorwachtrijlengte: Waarden boven 1 geven CPU-belasting aan. Controleer Taakbeheer om te bepalen welke processen CPU verbruiken.
  • % Bevoorrechte tijd: Moet tussen de 5-10% blijven. Waarden boven de 25% duiden op overmatige I/O-bewerkingen.

6.3.3 Schijftelleranalyse

Drempelwaarden voor schijfprestaties:

  • Gemiddelde schijftijd (sec./lezen en schrijven): Moet onder de 10-20 ms blijven. Hogere waarden duiden op trage schijfsubsystemen.
  • Lengte van schijfwachtrij: Waarden die consistent boven de 2 liggen (of 2 per schijf in RAID) duiden op I/O-knelpunten
  • % Schijftijd: Aanhoudende waarden boven 85% duiden op schijfverzadiging

6.4 Formules en statistieken gebruiken

Voeg statistische formules toe aan Excel voor snelle analyse:

  1. Voeg 7 lege rijen bovenaan uw spreadsheet in
  2. Voeg labels toe in kolom A: Gemiddelde, Mediaan, Min, Max, Standaardafwijking
  3. Voer in cel B2 het volgende in: =GEMIDDELDE(B9:B100) (pas B100 aan uw laatste gegevensrij aan)
  4. Voer in cel B3 het volgende in: =MEDIAAN(B9:B100)
  5. Voer in cel B4 het volgende in: =MIN(B9:B100)
  6. Voer in cel B5 het volgende in: =MAX(B9:B100)
  7. Voer in cel B6 het volgende in: =STDEV(B9:B100)
  8. Formules kopiëren naar alle tellerkolommen
  9. Selecteer cel B9 en druk op Alt+W+F+Enter om de deelvensters te bevriezen

Met deze statistieken kunt u trends, uitschieters en normale bedrijfsbereiken voor elke teller identificeren.

7. Prestatieanalyse voor logs (PAL)-tool

7.1 Inleiding tot PAL

Performance Analysis for Logs (PAL) is een gratis tool, ontwikkeld door Clint Huffman, die Performance Monitor-logs analyseert en HTML-rapporten met drempelanalyse genereert. PAL vergelijkt uw prestatiegegevens met bekende drempelwaarden en biedt gedetailleerde aanbevelingen voor SQL Server Prestatieoptimalisatie.

Download PAL van de GitHub-repository: https://github.com/clinthuffman/PAL External Link

7.2 PAL instellen

Installeer PAL door de volgende stappen te volgen:

  1. Download het PAL-installatiebestand van GitHub
  2. Voer het installatieprogramma
  3. Klik op het tabblad Volgende op het welkomstscherm
  4. Controleer en accepteer de installatiedirectory
  5. Klik op het tabblad Volgende verder
  6. Klik op het tabblad Install om met de installatie te beginnen
  7. Wacht tot de installatie is voltooid
  8. Klik op het tabblad Voltooien

7.3 Logbestanden verwerken met PAL

Analyseer uw prestatiemonitorlogboeken met PAL:

  1. Start PAL vanaf de Start-menu of installatiemap
  2. Klik op de knop Tellerlogboek .
  3. Klik op het tabblad Blader om uw .blg-bestand te selecteren
  4. Navigeer naar uw Prestatiemonitor-logbestand
  5. Klik op het tabblad Openen
  6. Klik op de knop Drempelbestand .
  7. Selecteer een drempelbestand uit de vervolgkeuzelijst (bijv. "SQL Server 2016” )
  8. Klik op de knop Contact .
  9. Beantwoord vragen over uw systeemconfiguratie
  10. Geef aan of uw SQL Server is OLTP of Data Warehouse
  11. Voer het totale beschikbare RAM-geheugen in
  12. Klik op de knop Uitvoeropties .
  13. Selecteer een uitvoermap voor het HTML-rapport
  14. Check HTML uitvoerformaat
  15. Klik op de knop Uitvoeren .
  16. Bekijk uw selecties
  17. Check Starde executie nu
  18. Klik op het tabblad Voltooien

7.4 PAL-rapporten analyseren

Nadat PAL de analyse heeft voltooid, wordt er een HTML-rapport gegenereerd met het volgende:

  • Samenvatting van prestatieproblemen
  • Gedetailleerde tegenanalyse met grafieken
  • Drempelovertredingen gemarkeerd in kleur
  • Specifieke aanbevelingen voor elk probleem
  • Historische trends en patronen

Het rapport gebruikt kleurcodering om de ernst aan te geven: rood voor kritieke problemen, geel voor waarschuwingen en groen voor gezonde statistieken. Bekijk elke sectie om prestatieknelpunten te begrijpen en volg de aanbevelingen van PAL voor optimalisatie.

8. Alternatief SQL Server Monitoring tools

8.1 Ingebouwd SQL Server Tools

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor geeft realtime informatie weer over SQL Server processen en prestaties:

  1. Openen SQL Server Management Studio (SSMS) en maak verbinding met uw serverinstantie
  2. Klik met de rechtermuisknop op de servernaam in Object Explorer
  3. Kies Activity Monitor
    Start Activiteitenmonitor in SQL Server Beheer Studio.

Activity Monitor toont processen, resourcewachttijden, I/O van gegevensbestanden en recente dure query's. Het biedt snel inzicht in de huidige databaseactiviteit, maar slaat geen historische gegevens op.

Activiteitenmonitor in SQL Server

8.1.2 SQL Server Prestatiedashboard

SQL Server Management Studio bevat ingebouwde prestatieverslagen:

  1. In SQL Server Management Studio (SSMS), klik met de rechtermuisknop op de SQL Server instantie in Object Explorer
  2. Kies Rapporten -> Standaardrapporten
  3. Kies uit beschikbare rapporten zoals Prestatiedashboard
    Open Prestatie Dashboard in SQL Server Beheer Studio.

Het prestatiedashboard biedt visuele inzichten in SQL Server Instantieprestaties, inclusief CPU-gebruik van het systeem, huidige wachtende verzoeken en prestatiegegevens. U kunt deze raadplegen via het menu Standaardrapporten.

Prestatiedashboard in SQL Server Beheerstudio

8.1.3 SQL Server Profiler

SQL Server Profiler vastlegt en analyseert SQL Server gebeurtenissen zoals query-uitvoering, transactiebewerkingen en inlogactiviteiten.

Aan start SQL Server profiler:

  1. In SQL Server Management Studio, klik Tools -> SQL Server Profiler
    Start SQL Server Profiler in SQL Server Beheer Studio.

Profiler creëert aanzienlijke prestatieoverhead, dus gebruik het verstandig en bij voorkeur buiten de piekuren. Voor most In scenario's biedt Extended Events betere prestaties met minder impact.

SQL Server Profiler

8.1.4 Uitgebreide gebeurtenissen

Uitgebreide evenementen is een lichtgewicht prestatiebewakingssysteem ingebouwd in SQL Server. Het vervangt SQL Server Profiler met betere prestaties en lagere overhead.

De belangrijkste kenmerken zijn:

  • Gedetailleerde monitoring van specifieke gebeurtenissen
  • Minimale prestatie-impact
  • Aanpasbare evenementensessies
  • Integratie met SSMS en andere tools
  • Ondersteuning voor complexe filtering en aggregatie

Maak Extended Event-sessies via SSMS:

  1. In Objectverkenner, breid uw server uit en ga naar Management -> Uitgebreide evenementen -> Sessies
  2. Klik met de rechtermuisknop op de Sessions En kies Nieuwe sessiewizard
    Stareen nieuwe sessie van Extended Events in SQL Server Beheer Studio.
  3. Volg de instructies om stareen nieuwe sessie.

8.1.5 Dynamische beheerweergaven (DMV's)

DMV's geven gedetailleerde informatie over de serverstatus weer voor het bewaken van de status, het diagnosticeren van problemen en het optimaliseren van de prestaties. Belangrijke DMV's zijn onder andere:

  • sys.dm_exec_query_statistieken: Queryprestatiestatistieken
  • sys.dm_os_wait_stats: Wachttypen die de serverprestaties beïnvloeden
  • sys.dm_os_prestatietellers: SQL Server prestatietellergegevens
  • sys.dm_exec_verzoeken: Momenteel worden verzoeken uitgevoerd
  • sys.dm_exec_sessies: Actieve gebruikersessies

U kunt deze weergaven opvragen met behulp van T-SQL om toegang te krijgen tot realtime prestatiegegevens en historische statistieken.

Standaard gebruik

-- See all active connections
SELECT * FROM sys.dm_exec_connections;

-- View current sessions
SELECT * FROM sys.dm_exec_sessions;

-- Check database file stats
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);

8.2 Monitoringoplossingen van derden

Redgate SQL-monitor

Redgate SQL Monitor is gespecialiseerd in monitoring SQL Server en Azure SQL Database-omgevingen. Het biedt monitoring over het hele domein, aanpasbare waarschuwingen en dashboards, gedetailleerde rapportagemogelijkheden en integratie met andere Redgate-tools.

Rode poort SQL Server monitor

SolarWinds SQL Server Controletool

De Zonnewinden SQL Server Monitoring Tool, ook bekend als SQL Sentry, is ontworpen om ernstige prestatieproblemen te diagnosticeren, op te lossen en te voorkomen SQL Server.

SolarWinds SQL Server Controletool

IDERA's SQL Server Prestatiemonitoringtool

IDERA SQL-diagnoseostic Manager is een krachtig SQL Server prestatiemonitoringtool ontworpen om te helpen bij proactieve prestatiemonitoring, diagnoseostics en tuning.

IDERA's SQL Server Prestatiemonitoringtool

SQL-monitoring van Applications Manager

Applications Manager biedt een Microsoft SQL Server Monitoringtool die nuttige IT-oplossingen biedt. Het is ontworpen om toezicht te houden op de prestaties van SQL-databases en tegelijkertijd bugs te identificeren en problemen op te lossen die tot stilstand van de activiteiten van een organisatie kunnen leiden.

SQL-monitoring van Applications Manager

8.3 Open source monitoringtools

DBA Dash

DBA Dash is een gratis, open-source monitoringtool die inzicht biedt in SQL Server Gezondheid, prestaties en activiteit. Het is met name handig voor kleine tot middelgrote omgevingen en omvat dagelijkse DBA-controles, prestatiebewaking en configuratietracking.

SQLWATCH

SQLWATCH biedt gedecentraliseerde, bijna real-time SQL Server Monitoring met een nauwkeurigheid van 5 seconden voor het vastleggen van pieken in de werklast. Het ondersteunt Grafana voor realtime dashboards en Power BI voor diepgaande analyses. De tool biedt uitgebreide configuratieopties, vereist geen onderhoud en is onbeperkt schaalbaar.

Opserver

Opserver, ontwikkeld door Stack Exchange, bewaakt meerdere systemen, waaronder SQL Server, Redis en Elasticsearch. Het biedt een "alle servers"-weergave van CPU-, geheugen-, netwerk- en hardwarestatistieken in uw infrastructuur.

sp_WieIsActief

sp_WhoIsActive is een uitgebreide, opgeslagen procedure voor activiteitsmonitoring, ontwikkeld door Adam Machanic. Het werkt met alle SQL Server versies van 2005 tot en met de huidige releases en wordt veel gebruikt door SQL Server DBA's voor realtime activiteitsbewaking.

Om sp_WhoIsActive te gebruiken, downloadt u het van http://whoisactive.com/, installeert u het in uw database en voert u het volgende uit:

EXEC sp_WhoIsActive

De procedure toont de query's die momenteel worden uitgevoerd, wachtinformatie, blokkeringsdetails en het resourceverbruik.

9. Beste praktijken voor SQL Server Prestatiemeter

9.1 Prestatiebasislijnen vaststellen

Prestatiebasislijnen bepalen de normale bedrijfsparameters voor uw SQL Server omgeving. Zonder basislijnen kunt u niet bepalen of de huidige meetgegevens problemen aangeven of typisch gedrag weerspiegelen.

Creëer basislijnen door:

  1. Het verzamelen van prestatiegegevens tijdens normale werkzaamheden gedurende ten minste één week
  2. Het vastleggen van statistieken tijdens zowel piek- als daluren
  3. Documenteren van typische waarden voor sleuteltellers
  4. Het vastleggen van seizoensvariaties indien van toepassingcable
  5. Opslaan van basisgegevens voor vergelijking met toekomstige statistieken

Werk basislijnen elk kwartaal bij of na belangrijke infrastructuurwijzigingen, applicatie-updates of databasewijzigingen.

9.2 Geschikte waarschuwingsdrempels instellen

Configureer intelligente drempelwaarden om zinvolle waarschuwingen te ontvangen zonder uzelf te overladen met meldingen:

  • Geheugentoekenningen in behandeling > 0 geeft geheugendruk aan
  • Processorwachtrijlengte > 2 per kern duidt op een CPU-bottleneck
  • Schijf sec/Lezen of Schrijven > 20 ms duidt op trage I/O
  • Geblokkeerde processen > 5 signalen voor conflicten
  • Levensverwachting van de pagina < 300 seconden duidt op geheugendruk

Pas drempelwaarden aan op basis van uw basisgegevens en specifieke werklastkenmerken. Gebruik adaptieve drempelwaarden die rekening houden met normale variaties in uw omgeving.

9.3 Regelmatige gegevensbeoordeling en -analyse

Plan regelmatig prestatiebeoordelingen om trends en opkomende problemen te identificeren:

  • Dagelijks: Bekijk algemene statistieken en recente waarschuwingen
  • Wekelijks: Voer een diepgaande analyse uit van prestatietrends
  • Maandelijks: Genereer uitgebreide rapporten en vergelijk deze met basislijnen
  • Kwartaalbericht: capaciteitsplanning en langetermijntrends herzien

Leg bevindingen vast en volg prestatieverbeteringen in de loop van de tijd.

9.4 Balans van monitoringoverhead

Monitoring zelf verbruikt bronnen, dus zorg dat u een evenwicht vindt tussen gegevensverzameling en prestatie-impact:

  • Gebruik intervallen van 30-60 seconden voor continue monitoring
  • Gebruik intervallen van 15 seconden alleen voor actieve probleemoplossing
  • Beperk de duur van de gegevensverzamelaarset om overmatige gegevens te voorkomen
  • Sla logs op aparte schijven op, los van databasebestanden
  • Archiveer oude prestatiegegevens om beheersbare bestandsgroottes te behouden

Als Performance Monitor correct is geconfigureerd, heeft dit minimale overheadkosten. Normaal gesproken bedraagt ​​de overhead minder dan 2% van de systeembronnen.

9.5 Langetermijngegevensretentie

Bewaar prestatiegegevens voor zinvolle trendanalyse en capaciteitsplanning:

  • Bewaar minimaal 1-2 jaar aan prestatiegegevens
  • Archiveer gegevens na 3-6 maanden in een aparte opslag
  • Comprimeer oudere logbestanden om ruimte te besparen
  • Documenteer alle belangrijke gebeurtenissen of veranderingen die de prestaties beïnvloeden

Gezien de relatief kleine omvang van de prestatiemetergegevens is het vaak haalbaar en waardevol om deze voor lange termijnanalyses onbeperkt te bewaren.

9.6 Integratie met DevOps-praktijken

Integreer databaseprestatiebewaking in CI/CD-pijplijnen:

  • Databaseprestatiegegevens opnemen in de implementatievalidatie
  • Automatiseer prestatietests voor nieuwe releases
  • Valideer dat codewijzigingen geen negatieve invloed hebben op de prestaties
  • Prestatiebenchmarks voor elke release maken
  • Integreer monitoringwaarschuwingen met incidentmanagementsystemen

10. Problemen met veelvoorkomende prestatieproblemen oplossen

10.1 CPU-knelpunten identificeren

CPU-knelpunten manifesteren zich in trage queryresponstijden en een hoog processorgebruik. Gebruik deze stappen om CPU-problemen te diagnosticeren:

  1. Controleer de processorwachtrijlengteteller. Waarden boven 2 per core duiden op CPU-belasting.
  2. Controleer % processortijd. Aanhoudende waarden boven 75% duiden op een CPU-bottleneck.
  3. Extern bureaublad naar de SQL Server
  4. Taakbeheer openen (Ctrl+Shift+Esc)
  5. Klik op de knop Processen .
  6. Check Toon processen van alle gebruikers
  7. Klik op de knop CPU kolomkop om te sorteren op CPU-gebruik
  8. Identificeer welke processen CPU-bronnen verbruiken

Als niet-SQL Server Toepassingen verbruiken veel CPU; verwijder ze van de databaseserver. Als sqlservr.exe veel CPU gebruikt, onderzoek dit dan met behulp van de volgende methoden:

  • Controleer SQL-compilaties/sec. en SQL-hercompilaties/sec. Waarden boven 10% van de batchverzoeken/sec. duiden op overmatige compilatie.
  • Vraag sys.dm_exec_query_stats op om CPU-intensieve query's te identificeren
  • Controleer uitvoeringsplannen op ontbrekende indexen of inefficiënte bewerkingen
  • Overweeg het toevoegen van indexen om het aantal tabelscans te verminderen

10.2 Geheugenproblemen diagnosticeren

Geheugenproblemen hebben een grote impact SQL Server Prestaties. Diagnoseer geheugenproblemen met behulp van deze indicatoren:

Beschikbare geheugendrops

Als de beschikbare MBytes consequent onder de 100 MB komen, krijgt het besturingssysteem te maken met geheugenproblemen.tarvatie. Windows kan een pagina uitzetten SQL Server geheugen naar schijf, wat leidt tot prestatieverslechtering.

Lage levensverwachting

Een paginalevensduur van minder dan 300 seconden duidt op een hoge buffercache-omzet. Dit wijst op onvoldoende geheugentoewijzing of overmatige geheugenbelasting door query's.

Lage buffercache-hitratio

Buffer Cache Hit Ratio onder 99% betekent SQL Server leest vaak gegevens van de schijf in plaats van het geheugen. Dit gebeurt wanneer de bufferpool te klein is of SQL Server is nog steeds aan het opwarmen na restart.

Geheugensubsidies in behandeling

Een waarde boven 0 voor Geheugentoekenningen in behandeling geeft aan dat er query's wachten op geheugentoekenningen. Dit duidt op een kritiek geheugentekort dat onmiddellijke aandacht vereist.

Om geheugenproblemen op te lossen:

  1. Configure SQL Server maximale geheugeninstelling om voldoende RAM over te laten voor het besturingssysteem (meestal 4-8 GB, afhankelijk van de servergrootte)
  2. Schakel de machtiging 'Pagina's in geheugen vergrendelen' in voor de SQL Server serviceaccount
  3. Voeg meer fysiek RAM toe aan de server als de geheugendruk aanhoudt
  4. Identificeer en optimaliseer geheugenintensieve query's

10.3 Problemen met schijf-I/O oplossen

Schijf-I/O vormt vaak het belangrijkste prestatieknelpunt in databasesystemen. Diagnose van schijfproblemen kunt u als volgt uitvoeren:

Hoge schijfwachtrijlengte

Een wachtrijlengte van de schijf die constant groter is dan 2 (of 2 per schijf voor RAID) geeft aan dat het schijfsubsysteem de I/O-aanvragen niet kan verwerken. Dit creëert een achterstand aan openstaande bewerkingen.

Overmatige schijflatentie

Waarden boven 10-20 ms voor gemiddelde schijfsec/lezen en gemiddelde schijfsec/schrijven duiden op een trage schijfrespons. Transactielogdrives vereisen bijzonder snelle prestaties, idealiter minder dan 5 ms voor schrijven.

Hoge % schijftijd

Een aanhoudende schijftijd boven 85% duidt op schijfverzadiging. De schijf besteedt most van zijn tijd bezig met het verwerken van I/O-verzoeken terwijl er nog maar weinig ongebruikte capaciteit over is.

Voordat u schijfproblemen aanpakt, moet u controleren of ze geen symptomen zijn van geheugenproblemen. Onvoldoende geheugen forceert SQL Server om meer gegevens van de schijf te lezen en zo de schijfstatistieken kunstmatig te verhogen.

Om problemen met originele schijf-I/O op te lossen:

  • Upgrade naar snellere schijven (SSD's in plaats van HDD's)
  • Implementeer RAID-configuraties voor betere prestaties
  • Scheid databasebestanden, transactielogboeken en tempdb op verschillende fysieke schijven
  • Voeg meer geheugen toe om het aantal schijflezingen te verminderen
  • Optimaliseer indexen om onnodige I/O te verminderen
  • Controleer en optimaliseer slecht presterende query's

10.4 Omgaan met blokkeringen en deadlocks

Blokkering treedt op wanneer een sessie vergrendelingen heeft die verhinderen dat andere sessies doorgaan. Houd deze tellers in de gaten om blokkeringsproblemen te identificeren:

  • Processen geblokkeerd: Zou idealiter 0 moeten zijn
  • Wachttijd vergrendeling/sec: Aantal vergrendelingsverzoeken waarvoor wachttijden nodig zijn
  • Gemiddelde wachttijd: Gemiddelde wachttijden voor sluizen

Om blokkering te onderzoeken:

  1. Open Activiteitenmonitor in SSMS
  2. Vouw de Processen sectie
  3. Zoek naar processen met een waarde die niet nul is Geblokkeerd door waarden
  4. Identificeer de blokkerende sessie-ID
  5. Bekijk de zoekopdrachten die blokkering veroorzaken

Gebruik sp_WhoIsActive voor een meer gedetailleerde blokkeringsanalyse. Overmatige wait_info-vermeldingen duiden vaak op problemen met de tempdb-conflicten of blokkeringen.

Om blokkering te verminderen:

  • Minimaliseer de transactieduur
  • Gebruik passende isolatieniveaus
  • Voeg indexen toe om de vergrendelingsduur te verkorten
  • Overweeg READ_COMMITTED_SNAPSHOT-isolatie
  • Controleer en optimaliseer langlopende query's

10.5 Problemen met queryprestaties

Het identificeren van dure query's is essentieel voor SQL-prestatiebewaking. Gebruik deze methoden om problematische query's te vinden:

Activiteitenmonitor gebruiken

  1. Klik in SSMS met de rechtermuisknop op de servernaam
  2. Kies Activity Monitor
  3. Uitvouwen Recente dure zoekopdrachten
  4. Controleer query's met een hoge CPU, duur of logische leesbewerkingen

Gebruik van DMV's

Vraag sys.dm_exec_query_stats op om resource-intensieve query's te identificeren:

SELECT TOP 50
    total_worker_time/execution_count AS avg_cpu_time,
    total_logical_reads/execution_count AS avg_logical_reads,
    execution_count,
    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
        ((CASE qs.statement_end_offset
            WHEN -1 THEN DATALENGTH(qt.text)
            ELSE qs.statement_end_offset
        END - qs.statement_start_offset)/2) + 1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY total_worker_time DESC

Analyseren van uitvoeringsplannen

  1. Open in SSMS een nieuw queryvenster
  2. Klik op het tabblad Geschatte uitvoeringsplan weergeven (Ctrl+L) of Inclusief actueel uitvoeringsplan (Ctrl+M)
  3. Voer uw query uit
  4. Bekijk het uitvoeringsplan voor dure operaties
  5. Zoek naar tabelscans, indexscans of high-cost operaties

Optimaliseer zoekopdrachten door:

  • Het toevoegen van geschikte indexen
  • Het herschrijven van query's om dure bewerkingen te vermijden
  • Statistieken bijwerken
  • Specifieke kolomnamen gebruiken in plaats van SELECT *
  • Het vermijden van onnodige DISTINCT- of ORDER BY-clausules

10.6 Corrupte database detecteren en herstellen

Corruptie van de database kan leiden tot prestatievermindering, gegevensverlies en systeemstoringen. Het snel detecteren en aanpakken van corruptie is cruciaal voor het behoud van de databasegezondheid.

Indicatoren voor databasecorruptie

Let op deze signalen van mogelijke corruptie:

  • Foutmeldingen in SQL Server foutenlogboek (fout 823, 824 of 825)
  • Onverwachte toepassingsfouten bij toegang tot specifieke tabellen
  • Trage queryprestaties op voorheen snelle query's
  • SQL Server crashes of onverwachte restarts
  • Verdachte pagina's die in de tabel msdb.dbo.suspect_pages voorkomen

DBCC CHECKDB gebruiken voor detectie

DBCC CONTROLEERDB is de belangrijkste tool voor het detecteren van databasecorruptie. Voer het regelmatig uit om problemen vroegtijdig op te sporen.

Verdachte pagina's bewaken

SQL Server registreert automatisch verdachte pagina's in de msdb-database:

SELECT 
    database_id,
    file_id,
    page_id,
    event_type,
    error_count,
    last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)

De geretourneerde rijen geven corruptieproblemen aan die onmiddellijke aandacht vereisen.

Strategieën voor corruptiepreventie

  • Schakel paginaverificatie in met de CHECKSUM-optie
  • Maak regelmatig databaseback-ups
  • Gebruik betrouwbare hardware met foutcorrectie
  • Controleer de schijfstatus met behulp van hulpmiddelen van de fabrikant
  • Plan regelmatig DBCC CHECKDB-runs
  • Houden SQL Server bijgewerkt met de nieuwste patches

Herstel- en reparatieopties

Als er corrupties worden gedetecteerd, kunt u de ingebouwde tool proberen DBCC CONTROLEERDB om ze te repareren. Als het niet lukt, gebruik dan tools van derden zoals DataNumen SQL Recovery die ernstige corruptie kan aanpakken.

11. Geavanceerde monitoringtechnieken

11.1 Query Store-bewaking

Query Store, geïntroduceerd in SQL Server 2016, legt automatisch queryprestatiegegevens vast. Het biedt waardevolle inzichten in querygedrag, uitvoeringsplannen en prestatietrends.

Query Store inschakelen

  1. Klik in SSMS Object Explorer met de rechtermuisknop op een database
  2. Kies Aanbod
  3. Klik op de knop QueryStore pagina
  4. In Bedrijfsmodus (aangevraagd); selecteer Lees Schrijf
  5. Configureer indien nodig aanvullende instellingen
  6. Klik op het tabblad OK

Queryprestaties bewaken

Toegang tot Query Store-rapporten via Object Explorer:

  1. Breid de database uit in Object Explorer
  2. Uitvouwen QueryStore
  3. Selecteer uit beschikbare rapporten:
    • Regressieve zoekopdrachten
    • Totale hulpbronnenconsumptie
    • Meest resource-verbruikende zoekopdrachten
    • Vragen met gedwongen plannen
    • Bijgehouden zoekopdrachten

Detectie van planregressie

Query Store detecteert automatisch wanneer query-uitvoeringsplannen veranderen en de prestaties verslechteren. Bekijk het rapport 'Regressed Queries' om te identificeren welke query's door planwijzigingen zijn beïnvloed.

Gedwongen planbeheer

Wanneer Query Store een beter uitvoeringsplan identificeert, forceer SQL Server om het te gebruiken:

  1. Open de query in Query Store
  2. Klik met de rechtermuisknop op het gewenste plan
  3. Kies Krachtplan

Hierdoor worden de prestaties direct verbeterd, zonder dat er codewijzigingen nodig zijn.

11.2 Indexonderhoudsbewaking

Indexfragmentatie verslechtert de queryprestaties na verloop van tijd. Controleer en onderhoud indexen regelmatig om optimale prestaties te garanderen.

Fragmentatiecontrole

Gebruik deze query om indexfragmentatie te controleren:

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_fragmentation_in_percent,
    ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
    AND ps.page_count > 1000
ORDER BY ps.avg_fragmentation_in_percent DESC

Voer deze query uit buiten de piekuren, aangezien dit veel resources kan vergen.

Pagina-dichtheidsanalyse

Paginadichtheid geeft aan hoe vol indexpagina's zijn. Een lage dichtheid verspilt ruimte en vermindert de prestaties:

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_page_space_used_in_percent < 75

Reorganiseren versus heropbouwen

Kies indexonderhoudsbewerkingen op basis van fragmentatieniveaus:

  • Fragmentatie 10-30%: Gebruik ALTER INDEX REORGANIZE
  • Fragmentatie > 30%: Gebruik ALTER INDEX REBUILD
  • Fragmentatie < 10%: Geen actie nodig

Reorganisatiebewerkingen vereisen minder resources en kunnen online worden uitgevoerd. Herbouwbewerkingen zijn grondiger, maar verbruiken aanzienlijke resources.

11.3 Updates van databasestatistieken

Hulp bij databasestatistieken SQL ServerDe queryoptimizer van maakt efficiënte uitvoeringsplannen. Verouderde statistieken leiden tot slechte queryprestaties.

Automatisch statistieken opnieuw opbouwen

Automatische statistiekenupdates inschakelen:

ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON
ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON

Monitoringstatistieken Gezondheid

Controleer wanneer de statistieken voor het laatst zijn bijgewerkt:

SELECT 
    OBJECT_NAME(s.object_id) AS TableName,
    s.name AS StatisticsName,
    STATS_DATE(s.object_id, s.stats_id) AS LastUpdated,
    sp.rows,
    sp.modification_counter
FROM sys.stats s
CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) sp
WHERE STATS_DATE(s.object_id, s.stats_id) < DATEADD(DAY, -7, GETDATE())
ORDER BY LastUpdated

Statistieken handmatig bijwerken indien nodig:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Aangepaste prestatiegegevens verzamelen

Creëer aangepaste oplossingen voor prestatiebewaking door sys.dm_os_performance_counters rechtstreeks te raadplegen en de resultaten in tabellen op te slaan.

Aangepaste verzamelingsscripts maken

Bouw een opgeslagen procedure om prestatiemetergegevens te verzamelen:

CREATE PROCEDURE dbo.CollectPerformanceCounters
AS
BEGIN
    INSERT INTO dbo.PerformanceHistory (
        SampleTime,
        CounterName,
        CounterValue
    )
    SELECT 
        GETDATE(),
        counter_name,
        cntr_value
    FROM sys.dm_os_performance_counters
    WHERE counter_name IN (
        'Page life expectancy',
        'Batch Requests/sec',
        'Buffer cache hit ratio'
    )
END

sys.dm_os_performance_counters gebruiken

Vraag prestatietellers rechtstreeks op:

SELECT 
    object_name,
    counter_name,
    instance_name,
    cntr_value,
    cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%'
ORDER BY counter_name

Historische gegevens opslaan

Maak een tabel om prestatiegegevens in de loop van de tijd op te slaan:

CREATE TABLE dbo.PerformanceHistory (
    ID INT IDENTITY PRIMARY KEY,
    SampleTime DATETIME2 NOT NULL,
    PageLifeExpectancy BIGINT,
    BatchRequestsPerSec DECIMAL(18,4),
    BufferCacheHitRatio DECIMAL(5,2)
)

CREATE CLUSTERED COLUMNSTORE INDEX CCI_PerformanceHistory 
ON dbo.PerformanceHistory

Gedraaide gegevensopslagmethoden

Sla gegevens op in een gepivoteerde indeling met één rij per sampletijd en één kolom per teller. Dit vermindert de opslagruimte en verbetert de queryprestaties in vergelijking met het opslaan van één rij per teller per sample.

11.5 Multi-serverbewaking

Voor omgevingen met meerdere SQL Server In dergelijke gevallen moet gecentraliseerde monitoring worden geïmplementeerd.

Gecentraliseerde monitoringbenadering

  • Maak een speciale monitoringdatabase op een aparte server
  • Verzamel gegevens van alle servers in de centrale opslagplaats
  • Gebruik SQL Server Agenttaken om verzamelingsscripts uit te voeren
  • Implementeer netwerktoegankelijke prestatietellerverzameling

Serverbewaking op afstand

Configureer Prestatiemeter om gegevens van externe servers te verzamelen door servernamen op te geven bij het toevoegen van tellers. Zorg ervoor dat firewallregels Prestatiemeter-verkeer toestaan.

Cross-server rapportage

Maak rapporten waarin u de prestaties van meerdere servers vergelijkt om uitschieters en capaciteitsonevenwichtigheden te identificeren.

12. Toezicht houden SQL Server in cloudomgevingen

12.1 Azure SQL Database-bewaking

Azure SQL Database biedt ingebouwde bewakingsmogelijkheden die verschillen van on-premises SQL Server.

Azure Monitor-integratie

Azure Monitor verzamelt automatisch metrische gegevens uit Azure SQL Database, waaronder:

  • DTU- of vCore-gebruik
  • Opslaggebruik
  • Verbindingsstatistieken
  • Deadlocks en time-outs

U krijgt toegang tot deze statistieken via Azure Portal of Azure Monitor API.

Ingebouwde bewakingsfuncties

Azure SQL Database omvat:

  • Aanbevelingen voor automatische afstemming
  • Query Prestatie Inzicht
  • Intelligente inzichten voor anomaliedetectie
  • Ingebouwde waarschuwing en diagnoseostics

Query Prestatie Inzicht

Deze functie biedt visualisatie van query's die de meeste resources verbruiken, analyse van de duur van query's en historische prestatietrends. U kunt deze functie openen via Azure Portal onder uw SQL Database-resource.

12.2 Cloud-native monitoringtools

Cloudplatforms bieden native monitoringoplossingen die zijn geoptimaliseerd voor hun omgeving:

  • Azure Monitor en Application Insights voor Azure SQL Database
  • AWS CloudWatch voor RDS SQL Server
  • Google Cloud Monitoring voor Cloud SQL Server

Deze tools integreren naadloos met de cloudinfrastructuur en bieden uniforme monitoring voor alle cloudbronnen.

Hybride omgevingsmonitoring

Voor hybride implementaties die zowel on-premises als in de cloud plaatsvinden, gebruikt u tools die beide omgevingen ondersteunen, zoals Redgate SQL Monitor, SolarWinds DPA of aangepaste oplossingen die gebruikmaken van gecentraliseerde gegevensverzameling.

12.3 Prestatieverschillen in de cloud

Cloud SQL Server omgevingen hebben unieke kenmerken:

Modellen voor toewijzing van middelen

Cloudproviders gebruiken verschillende methoden voor resourcetoewijzing (DTU's, vCores, serverless) die van invloed zijn op de manier waarop u prestatiegegevens interpreteert. Begrijp de beperkingen en kenmerken van uw servicelaag.

Schaaloverwegingen

Cloudomgevingen bieden mogelijkheden voor dynamische schaalbaarheid. Monitor het resourcegebruik om te bepalen wanneer u moet opschalen of afschalen. Veel cloudplatforms bieden automatische schaalbaarheid op basis van prestatiedrempels.

13. Automatisering van prestatiebewaking

13.1 SQL Server Agentenbanen

Automatiseer gegevensverzameling met behulp van SQL Server Agenttaken voor consistente monitoring zonder handmatige tussenkomst.

Geplande gegevensverzameling

  1. In SSMS, uitbreiden SQL Server Agent
  2. Klik met de rechtermuisknop Werken bij en selecteer Nieuwe baan
  3. Geef de taak een naam (bijvoorbeeld 'Prestatiegegevens verzamelen')
  4. Klik op het tabblad Stappen en voeg een nieuwe stap toe
  5. Stel Type in op Transact-SQL-script
  6. Voer uw script voor gegevensverzameling in
  7. Klik op het tabblad Schema's en voeg een schema toe
  8. Frequentie configureren (bijv. elke 5 minuten)
  9. Klik op het tabblad OK om de baan te creëren

Geautomatiseerde rapportage

Maak taken die prestatierapporten genereren en per e-mail verzenden:

  1. Maak een opgeslagen procedure die rapporten genereert
  2. Gebruik Database Mail om rapporten via e-mail te verzenden
  3. Plan de taak zo dat deze dagelijks of wekelijks wordt uitgevoerd

13.2 PowerShell-automatisering

PowerShell biedt krachtige automatiseringsmogelijkheden voor SQL Server prestatiemonitor.

Prestatietellerverzamelingsscripts

$counters = @(
    '\Processor(_Total)\% Processor Time',
    '\Memory\Available MBytes',
    '\PhysicalDisk(_Total)\Avg. Disk sec/Read'
)

$data = Get-Counter -Counter $counters -ComputerName 'SQLServer01'
$data.CounterSamples | Export-Csv 'C:\PerfLogs\counters.csv' -Append

WMI-query's

Gebruik WMI om prestatiegegevens van externe servers te verzamelen:

$cpu = Get-WmiObject Win32_Processor -ComputerName 'SQLServer01'
$memory = Get-WmiObject Win32_OperatingSystem -ComputerName 'SQLServer01'

Write-Host "CPU Usage: $($cpu.LoadPercentage)%"
Write-Host "Available Memory: $([math]::Round($memory.FreePhysicalMemory/1MB,2)) GB"

Geautomatiseerde waarschuwingen

Maak PowerShell-scripts die metrische gegevens controleren en waarschuwingen verzenden wanneer drempelwaarden worden overschreden:

$cpuThreshold = 80
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue

if ($cpu -gt $cpuThreshold) {
    Send-MailMessage -To 'dba@company.com' -Subject 'High CPU Alert' `
        -Body "CPU usage is $cpu%" -SmtpServer 'smtp.company.com'
}

13.3 Monitoringdashboards maken

Visualiseer prestatiegegevens met interactieve dashboards voor betere inzichten.

Power BI-integratie

  1. Verbind Power BI met uw prestatiegegevenstabellen
  2. Maak visualisaties voor belangrijke statistieken
  3. Voeg slicers toe voor tijdsbereik en serverselectie
  4. Dashboards publiceren naar Power BI Service
  5. Automatische vernieuwingsschema's configureren

Realtime dashboardcreatie

Gebruik hulpmiddelen zoals Grafana of aangepaste webapplicaties om dashboards in realtime te maken waarmee u rechtstreeks DMV's en prestatietellers kunt raadplegen.

Visualisatie van historische trends

Maak lijndiagrammen die trends in de loop van de tijd weergeven voor:

  • CPU-gebruik
  • Geheugengebruik
  • Schijf-I / O
  • Prestaties opvragen
  • Verbindingsaantallen

14. Casestudies en praktische voorbeelden

14.1 Casestudy: Geheugendruk oplossen

Symptoomidentificatie

Een productie SQL Server Ervaarden trage queryresponstijden tijdens piekuren. Gebruikers klaagden over time-outs in applicaties en verminderde prestaties.

Tegenanalyse

Gegevens van Prestatiemonitor onthuld:

  • Levensverwachting van de pagina gedaald tot 50 seconden (normaal: >300)
  • De buffercache-hitratio daalde naar 85% (normaal: >99%)
  • In afwachting van geheugensubsidies werden vaak waarden van 5-10 weergegeven
  • Het aantal fysieke schijflezingen per seconde is aanzienlijk gestegen

Resolutiestappen

  1. Gecontroleerd SQL Server maximale geheugeninstelling – ontdekte dat deze op standaard stond (onbeperkt)
  2. Beoordeeld totaal servergeheugen vs. TarServergeheugen ophalen – toonde een aanzienlijke kloof
  3. Het maximale servergeheugen is geconfigureerd om 8 GB over te laten voor het besturingssysteem
  4. De machtiging 'Pagina's in geheugen vergrendelen' is ingeschakeld voor SQL Server serviceaccount
  5. 32 GB extra RAM toegevoegd aan de server
  6. Gecontroleerde prestaties gedurende één week – Levensverwachting van pagina gestabiliseerd boven 500 seconden

Resultaat: De responstijden voor query's verbeterden met 60%, de klachten van gebruikers stopten en de applicatieprestaties waren weer normaal.

14.2 Case Study: CPU-prestatieoptimalisatie

Symptoomidentificatie

A SQL Server vertoonden tijdens kantooruren voortdurend een CPU-gebruik van meer dan 90%, wat leidde tot trage applicatieprestaties en frustratie bij gebruikers.

Tegenanalyse

Uit prestatiebewaking bleek:

  • % Processortijd gemiddeld 92% met frequente pieken tot 100%
  • Processor Queue Length is consistent boven de 4 (server had 8 cores)
  • SQL-compilaties/sec. waren 25% van de batchverzoeken/sec. (zou <10% moeten zijn)
  • SQL-hercompilaties/sec. waren 15% van de batchverzoeken/sec.

Resolutiestappen

  1. Gebruikte DMV's om de meest CPU-intensieve query's te identificeren
  2. Geanalyseerde uitvoeringsplannen voor geïdentificeerde query's
  3. Meerdere tabelscans op grote tabellen ontdekt vanwege ontbrekende indexen
  4. Geschikte indexen gecreëerd op basis van aanbevelingen voor het uitvoeringsplan
  5. Dynamische SQL geïdentificeerd die overmatige compilaties veroorzaakt
  6. Aangepaste applicatiecode voor het gebruik van geparameteriseerde query's
  7. Geïmplementeerde plangids voor problematische opgeslagen procedures
  8. Bijgewerkte statistieken over veelgebruikte tabellen

Resultaat: Het CPU-gebruik daalde tijdens kantooruren tot gemiddeld 45%. De uitvoeringstijden van query's verbeterden met 70%. De responsiviteit van applicaties verbeterde aanzienlijk.

14.3 Case Study: Oplossing voor knelpunten in schijf-I/O

Symptoomidentificatie

Gebruikers meldden een extreem trage reactie van de applicatie tijdens het laden van gegevens en tijdens batchverwerking in de avond.

Tegenanalyse

Uit de prestatiegegevens bleek:

  • Gemiddelde schijfsec/schrijftijd overschreed 45 ms op transactielogboekstation
  • De gemiddelde wachtrijlengte van de schijf was 12 op een gegevensbestandsstation
  • % Schijftijd bleef urenlang boven 95% tijdens batchtaken
  • Het aantal pagina's dat per seconde wordt geschreven, was uitzonderlijk hoog

Resolutiestappen

  1. Geverifieerde geheugeninstellingen waren correct – geen geheugenproblemen gevonden
  2. Geanalyseerde schijfconfiguratie – alle bestanden op dezelfde spindelset ontdekt
  3. Gescheiden transactielogboeken naar speciale snelle SSD-schijven
  4. Tempdb verplaatst naar aparte SSD-schijven
  5. Meerdere tempdb-gegevensbestanden geïmplementeerd (één per kern)
  6. Geüpgradede gegevensbestandsstations naar RAID 10 SSD-configuratie
  7. Geoptimaliseerde batchtaken voor het gebruik van kleinere transactiebatches
  8. Indexen toegevoegd om onnodige tabelscans tijdens batchbewerkingen te verminderen

Resultaat: De gemiddelde schijfsec/schrijftijd daalde naar 3 ms. De gemiddelde wachtrijlengte van de schijf daalde tot minder dan 1. De voltooiingstijd van batchtaken werd met 75% verkort.

15. Toekomstige trends in SQL Server Monitoren

15.1 Integratie van AI en machinaal leren

Kunstmatige intelligentie en machinaal leren transformeren SQL Server prestatiemonitor.

Predictive Analytics

Machine learning-modellen voorspellen toekomstige resourcebehoeften op basis van historische gegevens. Deze systemen kunnen het volgende voorspellen:

  • Wanneer de opslagcapaciteit uitgeput raakt
  • Verwachte CPU- en geheugenvereisten tijdens piekperioden
  • Verslechtering van queryprestaties voordat het gevolgen heeft voor gebruikers
  • Optimale tijden voor onderhoudswerkzaamheden

Onregelmatigheidsdetectie

AI-gestuurde tools detecteren automatisch ongebruikelijke patronen in prestatiegegevens. Ze identificeren afwijkingen die menselijke beheerders mogelijk over het hoofd zien en maken onderscheid tussen normale variaties en echte problemen.

Geautomatiseerde sanering

Zelfherstellende systemen lossen automatisch veelvoorkomende problemen op wanneer ze worden gedetecteerd:

  • Restardiensten die zijn gestopt
  • Herallocatie van middelen tijdens piekbelasting
  • Hotfixes toepassen voor bekende problemen
  • Herbouw gefragmenteerde indexen automatisch

15.2 Evolutie van cloudgebaseerde monitoring

Cloudmonitoring blijft zich ontwikkelen met nieuwe mogelijkheden.

Geünificeerde monitoringplatforms

Moderne platforms bieden een centraal inzicht in:

  • On-premises SQL Server gevallen
  • Cloud-hosted-databases
  • Hybride omgevingen
  • Applicatie prestaties
  • Infrastructuurmetrieken

Observeerbaarheidstrends

De verschuiving van monitoring naar observeerbaarheid benadrukt:

  • Inzicht in systeemgedrag vanuit de outputs
  • Correlatie van metrische gegevens, logs en traces
  • Diepgaande inzichten in gedistribueerde systemen
  • Realtime probleemdiagnose

15.3 Zelfherstellende databasesystemen

toekomst SQL Server versies zullen meer autonome mogelijkheden bevatten.

Automatische optimalisatie

Databases optimaliseren zichzelf voortdurend door:

  • Automatisch indexen maken en verwijderen op basis van de werklast
  • Configuratie-instellingen aanpassen voor optimale prestaties
  • Inefficiënte query's op een transparante manier herschrijven
  • Dynamisch beheer van de toewijzing van middelen

Intelligente afstemming

Geavanceerde systemen leren van prestatiepatronen en passen automatisch afstemmingsaanbevelingen toe, waardoor de noodzaak voor handmatige DBA-interventie afneemt.

16. Conclusie en belangrijkste conclusies

16.1 Samenvatting van essentiële monitoringpraktijken

effectief SQL Server Voor prestatiemonitoring is een allesomvattende aanpak nodig die hulpmiddelen, technieken en best practices combineert.

Samenvatting van Critical Counters

Concentreer u bij de monitoring op deze essentiële punten:

  • Geheugen: Levensverwachting van de pagina, Hitratio van de buffercache, Geheugentoekenningen in behandeling
  • CPU: % processortijd, processorwachtrijlengte
  • Schijf: Gemiddelde schijfsec/lezen en schrijven, lengte van de schijfwachtrij
  • SQL Server: Batchverzoeken/sec, Compilaties/sec, Gebruikersverbindingen

Samenvatting van beste praktijken

  • Basislijnen vaststellen tijdens normale werkzaamheden
  • Stel intelligente waarschuwingsdrempels in op basis van basislijnen
  • Controleer regelmatig de prestatiegegevens
  • Balansbewaking overhead met datagranulariteit
  • Bewaar langetermijngegevens voor trendanalyse
  • Gebruik voor elk monitoringscenario de juiste hulpmiddelen

16.2 Continue verbeteringsaanpak

SQL Server Prestatiebewaking is geen eenmalige activiteit, maar een doorlopend proces dat voortdurende verbetering vereist.

Regelmatige beoordelingscycli

  • Dagelijks: Controleer waarschuwingen en huidige prestaties
  • Wekelijks: trends bekijken en opkomende problemen identificeren
  • Maandelijks: Analyseer langetermijnpatronen en capaciteitsbehoeften
  • Kwartaal: basislijnen bijwerken en effectiviteit van monitoring beoordelen

Op de hoogte blijven van hulpmiddelen

Houd monitoringtools en -technieken up-to-date:

  • Evalueer nieuwe monitoringfuncties in SQL Server updates
  • Test nieuwe tools van derden
  • Neem deel aan trainingen en conferenties
  • Doe mee aan SQL Server gemeenschapsforums
  • Deel kennis met teamleden

16.3 volgende stappen

Implementeren SQL Server prestatiemonitoring systematisch:

Implementatie routekaart

  1. Week 1: Stel Prestatiemonitor in met essentiële tellers
  2. Week 2: Maak gegevensverzamelaarsets voor geautomatiseerde verzameling
  3. Week 3: Basislijnen vaststellen tijdens normale werkzaamheden
  4. Week 4: Configureer waarschuwingen voor kritieke drempels
  5. Maand 2: Implementeer aanvullende monitoringtools (DMV's, Extended Events)
  6. Maand 3: Ontwikkel aangepaste dashboards en rapporten
  7. Voortgaande: Verfijn de monitoring op basis van ervaring en veranderende eisen

Aanvullende bronnen

Blijf leren over SQL Server Prestatiemonitoring via Microsoft-documentatie, communityblogs en praktische oefeningen. Experimenteer met verschillende tools en technieken om te ontdekken wat het beste werkt voor uw omgeving.

17. Veelgestelde vragen (FAQ)

17.1 Wat zijn de most belangrijk SQL Server prestatiemeters om te monitoren?

De most kritisch SQL Server Prestatietellers omvatten:

  • Geheugen: Paginalevensverwachting (moet >300 seconden zijn) en buffercache-hitratio (moet >99% zijn)
  • CPU: % processortijd (aanhoudende waarden <75%) en processorwachtrijlengte (moet <2 per kern zijn)
  • Schijf: Gemiddelde schijfsec/lezen en schrijven (moet <10-20 ms zijn) en schijfwachtrijlengte (moet <2 per schijf zijn)
  • SQL Server: Batchverzoeken/sec, SQL-compilaties/sec en geheugentoekenningen in behandeling (moet 0 zijn)

Deze tellers bieden een compleet inzicht in de systeemstatus en helpen knelpunten snel te identificeren.

17.2 Hoe vaak moet ik prestatiegegevens verzamelen?

De verzamelfrequentie hangt af van uw monitoringdoelstellingen:

  • Basisbewaking: elke minuut (60 seconden)
  • Actieve probleemoplossing: elke 15-30 seconden gedurende korte periodes
  • Langetermijntrend: elke 5 minuten

Vermijd het continu verzamelen van gegevens met een hoge frequentie, aangezien dit de prestaties kan beïnvloeden en overmatige hoeveelheden gegevens kan genereren. Gebruik langere intervallen voor routinematige monitoring en kortere intervallen alleen bij het onderzoeken van specifieke problemen.

17.3 Wat is het verschil tussen Prestatiemeter en SQL Server Profielmaker?

Prestatiemonitor en SQL Server Profilers dienen verschillende doeleinden:

Prestatiemeter:

  • Monitoren systeem en SQL Server prestatie tellers
  • Houdt het resourcegebruik bij (CPU, geheugen, schijf)
  • Lage overhead, geschikt voor continue monitoring
  • Biedt geaggregeerde statistieken in de loop van de tijd

SQL Server profiler:

  • Sporen individueel SQL Server evenementen en vragen
  • Legt gedetailleerde informatie vast over de uitvoering van query's
  • Hogere overheadkosten, niet aanbevolen voor continu gebruik
  • Het beste voor het oplossen van specifieke queryproblemen
  • Verouderd ten gunste van uitgebreide evenementen

Gebruik Prestatiemonitor voor algemene systeembewaking en Uitgebreide gebeurtenissen (niet Profiler) voor gedetailleerde analyses op queryniveau.

17.4 Kan prestatiemonitoring van invloed zijn SQL Server prestatie?

Als Prestatiemonitor correct is geconfigureerd, heeft deze minimale impact op SQL Server Prestaties, doorgaans minder dan 2% overhead. Overmatige monitoring kan echter problemen veroorzaken:

  • Te veel balies verhogen de overhead
  • Zeer korte monsterintervallen (minder dan 15 seconden) vormen een belasting voor de hulpbronnen
  • Continue, hoogfrequente verzameling genereert grote logbestanden

Om de impact te minimaliseren:

  • Controleer alleen de noodzakelijke tellers
  • Gebruik geschikte bemonsteringsintervallen (60 seconden voor routinematige monitoring)
  • Sla logs op schijven op, gescheiden van databasebestanden
  • Plan resource-intensieve monitoring tijdens daluren

17.5 Hoe lang moet ik prestatiebewakingsgegevens bewaren?

De retentie is afhankelijk van uw analysebehoeften en opslagcapaciteit:

  • Minimum: 3 maanden voor het oplossen van recente problemen
  • Aanbevolen: 1-2 jaar voor capaciteitsplanning en trendanalyse
  • Optimaal: Onbeperkt, indien de opslag dit toelaat, aangezien historische gegevens in de loop van de tijd waardevoller worden.

Prestatiemetergegevens zijn goed te comprimeren en nemen relatief weinig ruimte in beslag. Overweeg om oudere gegevens te archiveren in een aparte opslagruimte in plaats van ze te verwijderen. Veel organisaties vinden dat jarenlange historische gegevens van onschatbare waarde zijn voor capaciteitsplanning en het identificeren van langetermijntrends.

17.6 Wat zijn goede drempelwaarden voor prestatiemeters?

Aanbevolen drempelwaarden voor waarschuwingen:

  • Geheugentoekenningen in behandeling: waarschuwing wanneer > 0
  • Levensverwachting pagina: Waarschuwing wanneer < 300 seconden
  • % Processortijd: Waarschuwing wanneer > 80% gedurende 5 minuten
  • Processorwachtrijlengte: Waarschuwing wanneer > 2 per kern
  • Gemiddelde schijf sec/lezen of schrijven: Waarschuwing wanneer > 20 ms
  • Lengte van schijfwachtrij: Waarschuwing wanneer > 2 per schijf
  • Geblokkeerde processen: waarschuwing wanneer > 5

Pas deze drempels aan op basis van uw basisgegevens en specifieke werklastkenmerken. Wat normaal is voor de ene omgeving, kan duiden op problemen in een andere.

17.7 Hoe controleer ik SQL Server prestaties op afstand?

Monitor op afstand SQL Server instanties die deze methoden gebruiken:

  1. Prestatiemeter: Geef de naam van de externe computer op bij het toevoegen van tellers
  2. Power shell: Gebruik de parameter -ComputerName met Get-Counter
  3. DMV's: Maak verbinding met externe servers via SSMS en raadpleeg DMV's
  4. Hulpprogramma's van derden: Most monitoringtools ondersteunen monitoring van servers op afstand

Zorg ervoor dat firewallregels het verkeer van Prestatiemonitor toestaan ​​en dat u de juiste machtigingen hebt op de externe server. Overweeg voor meerdere servers gecentraliseerde monitoring te implementeren met een speciale monitoringserver en database.

17.8 Wat is de beste gratis tool voor SQL Server prestatiemonitor?

Er zijn verschillende uitstekende gratis tools beschikbaar voor het monitoren SQL Server prestatie:

  • Windows Prestatiemeter: Ingebouwd, uitgebreid en betrouwbaar
  • SSMS-activiteitenmonitor: Realtime monitoring zonder extra installatie
  • Uitgebreide evenementen: Lichtgewicht gebeurtenisbewaking ingebouwd in SQL Server
  • sp_WieIsActief: Populaire gratis opgeslagen procedure voor gedetailleerde activiteitsbewaking
  • DBA-dashboard: Open-source monitoringtool met uitgebreide functies
  • SQLWATCH: Open-source met mogelijkheden voor bijna realtime monitoring

Het formulierost Organisaties, Performance Monitor gecombineerd met SSMS-tools en sp_WhoIsActive biedt uitstekende monitoringmogelijkheden zonder extra kostenost.

17.9 Hoe exporteer ik PerfMon-gegevens voor analyse?

Exporteer prestatiemonitorgegevens met behulp van de volgende methoden:

Exporteren naar CSV:

  1. Open Prestatiemeter met uw logbestand geladen
  2. Klik met de rechtermuisknop op de grafiek en selecteer Gegevens opslaan als
  3. Kies Tekstbestand (door komma's gescheiden) (.csv)
  4. Locatie selecteren en opslaan
  5. Openen in Excel voor analyse

Gebruik de Relog-opdracht:

relog input.blg -f csv -o output.csv

Met dit opdrachtregelhulpprogramma kunt u binaire logbestanden (.blg) converteren naar CSV-formaat, zodat u ze gemakkelijker kunt analyseren in spreadsheettoepassingen.

17.10 Wanneer moet ik monitoringtools van derden gebruiken in plaats van ingebouwde opties?

Overweeg het gebruik van hulpmiddelen van derden wanneer:

  • Het beheren van grote aantallen SQL Server instanties (10+)
  • Vereist gecentraliseerde monitoring over meerdere datacenters
  • Behoefte aan geavanceerde functies zoals voorspellende analyses of anomaliedetectie
  • Geïntegreerde waarschuwingen met incidentmanagementsystemen gewenst
  • Vereisen van nalevingsrapportage en historische analyse
  • Gebrek aan DBA-middelen om maatwerkoplossingen te bouwen en onderhouden
  • Monitoring van heterogene databaseomgevingen (SQL Server, Oracle, MySQL, enz.)

Ingebouwde tools werken goed in kleinere omgevingen of wanneer u beschikt over ervaren DBA's die maatwerk monitoringoplossingen kunnen ontwikkelen. Tools van derden bieden meerwaarde door tijdsbesparing, geavanceerde functies en professionele ondersteuning.

18. Aanvullende bronnen

18.1 Officiële documentatie

Microsoft biedt uitgebreide documentatie voor SQL Server prestatiemonitor:

18.2 Aanbevolen hulpmiddelen en downloads

Essentiële hulpmiddelen voor SQL Server prestatiemonitor:

  • PAL-tool: https://github.com/clinthuffman/PAL
  • sp_WieIsActief: http://whoisactive.com/
  • DBA-dashboard: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Eerstehulpkit (Brent Ozar): https://www.brentozar.com/first-aid/
  • SQL Server Beheer Studio: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Gemeenschapsbronnen

Leer van de SQL Server gemeenschap:

  • SQL Server Central: https://www.sqlservercentral.com/
  • Blog van Brent Ozar: https://www.brentozar.com/blog/
  • SQL Shack: https://www.sqlshack.com/
  • MSSQLTips: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • Stack Overflow SQL Server label: https://stackoverflow.com/questions/tagged/sql-server

Deze bronnen bieden handleidingen, advies over probleemoplossing en best practices van ervaren SQL Server professionals. Door deel te nemen aan communityforums leert u van de ervaringen van anderen en deelt u uw eigen kennis.


Over de auteur

Yuan Sheng is een senior databasebeheerder (DBA) met meer dan 10 jaar ervaring in SQL Server omgevingen en enterprise databasebeheer. Hij heeft honderden databaseherstelscenario's succesvol opgelost in financiële dienstverlening, gezondheidszorg en productiebedrijven.

Yuan is gespecialiseerd in SQL Server Databaseherstel, oplossingen voor hoge beschikbaarheid en prestatieoptimalisatie. Zijn uitgebreide praktijkervaring omvat het beheren van databases van meerdere terabytes en het implementeren van oplossingen voor hoge beschikbaarheid. Altijd aan-beschikbaarheidsgroepenen het ontwikkelen van geautomatiseerde back-up- en herstelstrategieën voor bedrijfskritische systemen.

Met zijn technische expertise en praktische aanpak richt Yuan zich op het creëren van uitgebreide handleidingen die databasebeheerders en IT-professionals helpen complexe problemen op te lossen. SQL Server uitdagingen efficiënt. Hij blijft op de hoogte van de nieuwste SQL Server releases en de evoluerende databasetechnologieën van Microsoft, waarbij hij regelmatig herstelscenario's test om ervoor te zorgen dat zijn aanbevelingen overeenkomen met de beste praktijken in de praktijk.

Heb vragen over SQL Server herstel of heeft u aanvullende begeleiding nodig bij het oplossen van databaseproblemen? Yuan verwelkomt feedback en suggesties om deze technische middelen te verbeteren.