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.
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:
- Klik op het tabblad Starttype perfmon Klik in het zoekvak op 'Performand Monitor' in het zoekresultaat:
- Druk op Windows + Rtype perfmonen druk op Enter
- Navigeer naar 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:
- Prestatiemonitor openen
- Uitvouwen Gegevensverzamelaarsets
- Klik met de rechtermuisknop User Defined
- Kies New -> Gegevensverzamelaarset
- Voer een beschrijvende naam in (bijv. "SQL Server Prestatiemetingen”)
- Kies Maak handmatig (geavanceerd)
- Klik op het tabblad Volgende
- Check Gegevenslogboeken maken -> Prestatieteller
- Klik op het tabblad Volgende
- Klik op het tabblad Toevoegen om tellers te selecteren
- Toevoegen gewenste SQL Server en systeemtellers.
- 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.
- Klik op het tabblad Volgende
- Kies de locatie waar de logs moeten worden opgeslagen
- Klik op het tabblad Voltooien, wordt er een nieuwe Data Collector Set aangemaakt.
- 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
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:
- Nadat u de gegevensverzamelaarset hebt gemaakt, klikt u er met de rechtermuisknop op en selecteert u Aanbod
- Klik op de knop Stopconditie .
- Enable Totale duur
- Stel de duur in op 1 dag (24 uur)
- Klik op het tabblad OK opslaan
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:
- Klik met de rechtermuisknop op uw gegevensverzamelaarset en selecteer Aanbod
- Klik op de knop Programma .
- Klik op het tabblad Toevoegen een nieuw schema maken
- Configureren stardatum en tijd
- Stel een herhalingspatroon in (bijv. dagelijks)
- Klik op het tabblad OK om het schema op te slaan
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:
- Prestatiemonitor openen
- Uitvouwen Prestatielogboeken en signalen in het linkerdeelvenster
- Klik met de rechtermuisknop Tellerlogboeken
- Kies Nieuwe loginstellingen
- Geef het logboek de naam van uw databaseserver (bijvoorbeeld 'ProductionSQL01')
- 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:
- Klik op de knop Tellers toevoegen
- Wijzig de computernaam zodat deze naar uw computer verwijst SQL Server instantie
- Druk op Tab om beschikbare prestatieobjecten te laden
- Selecteer een prestatieobject uit de vervolgkeuzelijst (bijv. Geheugen)
- Kies specifieke tellers uit de lijst
- Selecteer instanties indien van toepassingcable (bijv. individuele processors of schijven)
- Klik op het tabblad Toevoegen om de teller op te nemen
- Herhaal dit voor alle gewenste tellers
- 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:
- Zoek in de eigenschappen van het tellerlogboek naar Voorbeeldgegevens elke
- Stel het interval in (standaard is 15 seconden)
- Voor basislijnbewaking gebruikt u intervallen van 1 minuut voor dagelijkse verzameling
- Gebruik voor het oplossen van problemen intervallen van 15-30 seconden voor korte uitbarstingen
- 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:
- Klik op de knop Logbestanden tabblad in teller log eigenschappen
- Wijzig het logbestandstype naar Tekstbestand (door komma's gescheiden) voor eenvoudige Excel-import
- Klik op het tabblad Configure
- Stel het bestandspad in op een toegewezen locatie (bijvoorbeeld een gedeelde PerformanceLogs-map)
- 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:
- Zoek in de eigenschappen van het tellerlogboek naar Rennen als
- Voer de gebruikersnaam van uw domein in het volgende formaat in: DOMEIN\gebruikersnaam
- Klik op het tabblad Wachtwoord instellen
- Voer uw wachtwoord in en bevestig het
- 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:
- Prestatiemonitor openen
- Klik in het linkerdeelvenster op Monitoring tools -> Prestatiemeter.
- Klik met de rechtermuisknop ergens in het grafiekgebied
- Kies Aanbod
- Klik op de knop Bron .
- Kies Logboek bestanden Radio knop
- Klik op het tabblad Toevoegen
- Navigeer naar uw logbestand (.blg of .csv)
- Selecteer het bestand en klik op Openen
- Gebruik de knop Tijdsbestek schuifregelaar om de periode te selecteren die u wilt analyseren
- Klik op het tabblad OK om het dialoogvenster Eigenschappen te sluiten
- Klik op het groene pluspictogram om tellers uit het logbestand toe te voegen
- Selecteer de gewenste tellers om weer te geven
- 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:
- Open Prestatiemeter met uw logbestand geladen
- Klik met de rechtermuisknop ergens in het grafiekgebied
- Kies Gegevens opslaan als
- Kies een locatie voor het bestand
- Kies Tekstbestand (door komma's gescheiden) (.csv) uit de vervolgkeuzelijst
- Klik op het tabblad Opslaan
- Open het CSV-bestand in Excel
Formatteer de geëxporteerde gegevens voor een betere analyse:
- Verwijder de halflege rij 2 en wis cel A1
- Kolom A opmaken als Datum/Tijd
- Numerieke kolommen opmaken met decimalen nul en scheidingsteken voor duizendtallen
- Zoek en vervang servernamen in headers (vervang bijvoorbeeld “\\SERVERNAME” door een lege regel)
- Ruim objectnamen op in headers (bijvoorbeeld 'Geheugen', 'Fysieke schijf', 'Processor')
- 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:
- Voeg 7 lege rijen bovenaan uw spreadsheet in
- Voeg labels toe in kolom A: Gemiddelde, Mediaan, Min, Max, Standaardafwijking
- Voer in cel B2 het volgende in: =GEMIDDELDE(B9:B100) (pas B100 aan uw laatste gegevensrij aan)
- Voer in cel B3 het volgende in: =MEDIAAN(B9:B100)
- Voer in cel B4 het volgende in: =MIN(B9:B100)
- Voer in cel B5 het volgende in: =MAX(B9:B100)
- Voer in cel B6 het volgende in: =STDEV(B9:B100)
- Formules kopiëren naar alle tellerkolommen
- 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
7.2 PAL instellen
Installeer PAL door de volgende stappen te volgen:
- Download het PAL-installatiebestand van GitHub
- Voer het installatieprogramma
- Klik op het tabblad Volgende op het welkomstscherm
- Controleer en accepteer de installatiedirectory
- Klik op het tabblad Volgende verder
- Klik op het tabblad Install om met de installatie te beginnen
- Wacht tot de installatie is voltooid
- Klik op het tabblad Voltooien
7.3 Logbestanden verwerken met PAL
Analyseer uw prestatiemonitorlogboeken met PAL:
- Start PAL vanaf de Start-menu of installatiemap
- Klik op de knop Tellerlogboek .
- Klik op het tabblad Blader om uw .blg-bestand te selecteren
- Navigeer naar uw Prestatiemonitor-logbestand
- Klik op het tabblad Openen
- Klik op de knop Drempelbestand .
- Selecteer een drempelbestand uit de vervolgkeuzelijst (bijv. "SQL Server 2016” )
- Klik op de knop Contact .
- Beantwoord vragen over uw systeemconfiguratie
- Geef aan of uw SQL Server is OLTP of Data Warehouse
- Voer het totale beschikbare RAM-geheugen in
- Klik op de knop Uitvoeropties .
- Selecteer een uitvoermap voor het HTML-rapport
- Check HTML uitvoerformaat
- Klik op de knop Uitvoeren .
- Bekijk uw selecties
- Check Starde executie nu
- 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:
- Openen SQL Server Management Studio (SSMS) en maak verbinding met uw serverinstantie
- Klik met de rechtermuisknop op de servernaam in Object Explorer
- Kies Activity Monitor
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.
8.1.2 SQL Server Prestatiedashboard
SQL Server Management Studio bevat ingebouwde prestatieverslagen:
- In SQL Server Management Studio (SSMS), klik met de rechtermuisknop op de SQL Server instantie in Object Explorer
- Kies Rapporten -> Standaardrapporten
- Kies uit beschikbare rapporten zoals Prestatiedashboard
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.
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:
- In SQL Server Management Studio, klik Tools -> SQL Server Profiler
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.
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:
- In Objectverkenner, breid uw server uit en ga naar Management -> Uitgebreide evenementen -> Sessies
- Klik met de rechtermuisknop op de Sessions En kies Nieuwe sessiewizard
- 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.
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.
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.
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.
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:
- Het verzamelen van prestatiegegevens tijdens normale werkzaamheden gedurende ten minste één week
- Het vastleggen van statistieken tijdens zowel piek- als daluren
- Documenteren van typische waarden voor sleuteltellers
- Het vastleggen van seizoensvariaties indien van toepassingcable
- 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:
- Controleer de processorwachtrijlengteteller. Waarden boven 2 per core duiden op CPU-belasting.
- Controleer % processortijd. Aanhoudende waarden boven 75% duiden op een CPU-bottleneck.
- Extern bureaublad naar de SQL Server
- Taakbeheer openen (Ctrl+Shift+Esc)
- Klik op de knop Processen .
- Check Toon processen van alle gebruikers
- Klik op de knop CPU kolomkop om te sorteren op CPU-gebruik
- 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:
- Configure SQL Server maximale geheugeninstelling om voldoende RAM over te laten voor het besturingssysteem (meestal 4-8 GB, afhankelijk van de servergrootte)
- Schakel de machtiging 'Pagina's in geheugen vergrendelen' in voor de SQL Server serviceaccount
- Voeg meer fysiek RAM toe aan de server als de geheugendruk aanhoudt
- 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:
- Open Activiteitenmonitor in SSMS
- Vouw de Processen sectie
- Zoek naar processen met een waarde die niet nul is Geblokkeerd door waarden
- Identificeer de blokkerende sessie-ID
- 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
- Klik in SSMS met de rechtermuisknop op de servernaam
- Kies Activity Monitor
- Uitvouwen Recente dure zoekopdrachten
- 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
- Open in SSMS een nieuw queryvenster
- Klik op het tabblad Geschatte uitvoeringsplan weergeven (Ctrl+L) of Inclusief actueel uitvoeringsplan (Ctrl+M)
- Voer uw query uit
- Bekijk het uitvoeringsplan voor dure operaties
- 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
- Klik in SSMS Object Explorer met de rechtermuisknop op een database
- Kies Aanbod
- Klik op de knop QueryStore pagina
- In Bedrijfsmodus (aangevraagd); selecteer Lees Schrijf
- Configureer indien nodig aanvullende instellingen
- Klik op het tabblad OK
Queryprestaties bewaken
Toegang tot Query Store-rapporten via Object Explorer:
- Breid de database uit in Object Explorer
- Uitvouwen QueryStore
- 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:
- Open de query in Query Store
- Klik met de rechtermuisknop op het gewenste plan
- 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
- In SSMS, uitbreiden SQL Server Agent
- Klik met de rechtermuisknop Werken bij en selecteer Nieuwe baan
- Geef de taak een naam (bijvoorbeeld 'Prestatiegegevens verzamelen')
- Klik op het tabblad Stappen en voeg een nieuwe stap toe
- Stel Type in op Transact-SQL-script
- Voer uw script voor gegevensverzameling in
- Klik op het tabblad Schema's en voeg een schema toe
- Frequentie configureren (bijv. elke 5 minuten)
- Klik op het tabblad OK om de baan te creëren
Geautomatiseerde rapportage
Maak taken die prestatierapporten genereren en per e-mail verzenden:
- Maak een opgeslagen procedure die rapporten genereert
- Gebruik Database Mail om rapporten via e-mail te verzenden
- 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
- Verbind Power BI met uw prestatiegegevenstabellen
- Maak visualisaties voor belangrijke statistieken
- Voeg slicers toe voor tijdsbereik en serverselectie
- Dashboards publiceren naar Power BI Service
- 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
- Gecontroleerd SQL Server maximale geheugeninstelling – ontdekte dat deze op standaard stond (onbeperkt)
- Beoordeeld totaal servergeheugen vs. TarServergeheugen ophalen – toonde een aanzienlijke kloof
- Het maximale servergeheugen is geconfigureerd om 8 GB over te laten voor het besturingssysteem
- De machtiging 'Pagina's in geheugen vergrendelen' is ingeschakeld voor SQL Server serviceaccount
- 32 GB extra RAM toegevoegd aan de server
- 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
- Gebruikte DMV's om de meest CPU-intensieve query's te identificeren
- Geanalyseerde uitvoeringsplannen voor geïdentificeerde query's
- Meerdere tabelscans op grote tabellen ontdekt vanwege ontbrekende indexen
- Geschikte indexen gecreëerd op basis van aanbevelingen voor het uitvoeringsplan
- Dynamische SQL geïdentificeerd die overmatige compilaties veroorzaakt
- Aangepaste applicatiecode voor het gebruik van geparameteriseerde query's
- Geïmplementeerde plangids voor problematische opgeslagen procedures
- 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
- Geverifieerde geheugeninstellingen waren correct – geen geheugenproblemen gevonden
- Geanalyseerde schijfconfiguratie – alle bestanden op dezelfde spindelset ontdekt
- Gescheiden transactielogboeken naar speciale snelle SSD-schijven
- Tempdb verplaatst naar aparte SSD-schijven
- Meerdere tempdb-gegevensbestanden geïmplementeerd (één per kern)
- Geüpgradede gegevensbestandsstations naar RAID 10 SSD-configuratie
- Geoptimaliseerde batchtaken voor het gebruik van kleinere transactiebatches
- 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
- Week 1: Stel Prestatiemonitor in met essentiële tellers
- Week 2: Maak gegevensverzamelaarsets voor geautomatiseerde verzameling
- Week 3: Basislijnen vaststellen tijdens normale werkzaamheden
- Week 4: Configureer waarschuwingen voor kritieke drempels
- Maand 2: Implementeer aanvullende monitoringtools (DMV's, Extended Events)
- Maand 3: Ontwikkel aangepaste dashboards en rapporten
- 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:
- Prestatiemeter: Geef de naam van de externe computer op bij het toevoegen van tellers
- Power shell: Gebruik de parameter -ComputerName met Get-Counter
- DMV's: Maak verbinding met externe servers via SSMS en raadpleeg DMV's
- 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:
- Open Prestatiemeter met uw logbestand geladen
- Klik met de rechtermuisknop op de grafiek en selecteer Gegevens opslaan als
- Kies Tekstbestand (door komma's gescheiden) (.csv)
- Locatie selecteren en opslaan
- 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:
- SQL Server Documentatie voor prestatiemonitor: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Dynamische managementweergaven: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Uitgebreide evenementen: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Querywinkel: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Prestatie-afstemming en -bewaking: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
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.





























