Inhoudsopgave verstoppen

1. Inleiding tot SQL Server Profiler

1.1 Wat is SQL Server Profiler en waarom hebben we het nodig?

SQL Server Profiler is een grafische gebruikersinterfacetool voor het monitoren en vastleggen van gebeurtenissen die zich binnen een organisatie voordoen. SQL ServerDeze krachtige diagnoseostMet de ic-tool kunnen databasebeheerders en -ontwikkelaars de activiteit van de database-engine in realtime observeren. Zo kunnen ze prestatieknelpunten identificeren, toepassingsproblemen oplossen en beveiligingsgebeurtenissen controleren.

SQL Server Profiler

1.2 SQL Server Profiler in 2025: huidige status en alternatieven

Microsoft heeft het afgekeurd SQL Server Profiler starting met SQL Server 2016, aanbevelen Uitgebreide evenementen als vervangende technologie. De tool blijft echter beschikbaar in de huidige SQL Server versies inclusief SQL Server 2022 en wordt nog steeds veel gebruikt door databaseprofessionals.

1.3 Voor wie is deze gids bedoeld?

  • Deze handleiding is bedoeld voor databasebeheerders die toezicht moeten houden SQL Server instanties, diagnosticeren prestatieproblemen en garanderen de betrouwbaarheid van het systeem. DBA's vinden praktische richtlijnen voor het vastleggen van traces, het analyseren van gebeurtenissen en het implementeren van monitoringstrategieën.
  • Applicatieontwikkelaars hebben er baat bij om te begrijpen hoe hun code samenwerkt met SQL ServerMet SQL Profiler kunnen ontwikkelaars inefficiënte query's identificeren, applicatiegedrag valideren en databasegerelateerde fouten opsporen.
  • Prestatieanalisten en consultants ontdekken geavanceerde technieken voor workloadanalyse, capaciteitsplanning en systeemoptimalisatie. De uitgebreide dekking van traceconfiguratie, filtering en analyse maakt grondige databaseprestatiebeoordelingen mogelijk.

2. Begrip SQL Server Fundamentele functies van Profiler

2.1 Hoe SQL Server Profiler Works

SQL Server Profiler werkt als een clienttoepassing die verbinding maakt met de SQL Trace-engine die binnen SQL ServerWanneer u een trace maakt, controleert de database-engine specifieke gebeurtenissen en legt deze vast volgens uw configuratie. De trace-engine verzamelt gebeurtenisgegevens met minimale impact op de serverprestaties, mits correct geconfigureerd.

De onderliggende SQL Trace-infrastructuur maakt gebruik van lichtgewicht event hooks in de database-engine. Wanneer er een gebeurtenis plaatsvindt die overeenkomt met uw trace-definitie, verzamelt de engine relevante informatie en stuurt deze naar de Profiler-interface of slaat deze op in een bestand of tabel. Deze architectuur maakt flexibele gegevensverzameling mogelijk zonder de applicatiecode te wijzigen.

2.2 Belangrijkste concepten en terminologie

2.2.1 Evenementen

Gebeurtenissen vertegenwoordigen specifieke gebeurtenissen binnen SQL Server die de trace engine kan vastleggen. Elke gebeurtenis komt overeen met een specifieke databasebewerking of systeemactiviteit. SQL Server Profiler organiseert gebeurtenissen in logische categorieën voor eenvoudigere configuratie.

Veelvoorkomende gebeurteniscategorieën zijn onder andere TSQL voor query-uitvoering, opgeslagen procedures voor procedureaanroepen, vergrendelingen voor gelijktijdigheidsbewaking en fouten en waarschuwingen voor het bijhouden van uitzonderingen. Het selecteren van de juiste gebeurtenissen bepaalt welke informatie uw trace vastlegt en heeft een directe invloed op de bruikbaarheid en prestatieoverhead van de trace.

Inzicht in gebeurtenistypen helpt u bij het configureren van effectieve traceringen. RPC:Completed-gebeurtenissen leggen voltooiingen van externe procedureaanroepen vast, SQL:BatchCompleted-gebeurtenissen volgen ad-hoc querybatches en Lock:Deadlock-gebeurtenissen identificeren deadlockgebeurtenissen. Kies gebeurtenissen die aansluiten bij uw specifieke doelstellingen voor probleemoplossing of monitoring.

2.2.2 Gegevenskolommen

Gegevenskolommen definiëren welke informatie de trace voor elke gebeurtenis vastlegt. Veelvoorkomende kolommen zijn TextData voor de daadwerkelijke SQL-instructie, Duration voor de uitvoeringstijd, CPU voor processorgebruik, Reads voor leesbewerkingen op de logische schijf en Writes voor schrijfbewerkingen op de logische schijf.

Essentiële kolommen variëren per use case. Voor prestatieproblemen zijn doorgaans de kolommen Duur, CPU, Leesbewerkingen en Schrijfbewerkingen nodig. Beveiligingscontroles vereisen de kolommen LoginName, DatabaseName en ObjectName. Applicatiedebuggen profiteert van de kolommen ApplicationName, SPID en Error.

Door alleen de benodigde kolommen te selecteren, vermindert u de trace-overhead en vereenvoudigt u de analyse. Vermijd het vastleggen van alle beschikbare kolommen, tenzij specifiek nodig. Elke extra kolom verhoogt de hoeveelheid verzamelde en verwerkte gegevens, wat mogelijk de serverprestaties beïnvloedt.

2.2.3-filters

Filters beperken welke gebeurtenissen de trace vastlegt op basis van specifieke criteria. Correct geconfigureerde filters verkleinen het tracevolume aanzienlijk, waardoor analyses beheersbaar worden en de impact op de prestaties tot een minimum wordt beperkt. Filters evalueren gebeurtenisgegevens vóór het vastleggen, waardoor onnodige gegevensverzameling wordt voorkomen.

Veelvoorkomende filtercriteria zijn onder andere DatabaseName om te focussen op specifieke databases, ApplicationName om specifieke applicaties te isoleren, Duration om alleen langzame bewerkingen vast te leggen en LoginName om specifieke gebruikers te volgen. Door meerdere filters te combineren, ontstaan ​​nauwkeurige tracedefinities die precies vastleggen wat u nodig hebt.

Prestatiegerichte filtering is essentieel voor productieomgevingen. Filter altijd op DatabaseName of ApplicationName om te voorkomen dat systeemactiviteit wordt vastgelegd. Stel minimale drempelwaarden voor de duur in om snel uitgevoerde query's te negeren. Gebruik TextData-filters met de nodige voorzichtigheid, omdat ze tekenreeksvergelijkingen vereisen die overhead toevoegen.

2.2.4 Trace-sjablonen

Trace-sjablonen bieden vooraf geconfigureerde gebeurtenis-, kolom- en filterselecties voor veelvoorkomende scenario's. SQL Server Profiler bevat verschillende ingebouwde sjablonen die dienen als starPunten voor het maken van traces. Aangepaste sjablonen slaan uw configuraties op voor hergebruik in meerdere traceringssessies.

De standaardsjabloon legt een algemene set gebeurtenissen vast die geschikt zijn voor basisbewaking. De TSQL-sjabloon richt zich op query-uitvoering met minimale overhead. De tuningsjabloon verzamelt gebeurtenissen specifiek voor analyse met Database Engine Tuning Advisor. Elke sjabloon weegt de informatieverzameling af tegen de impact op de prestaties.

Het maken van aangepaste sjablonen bespaart tijd en zorgt voor consistentie in traceringssessies. Configureer een trace met uw favoriete gebeurtenissen, kolommen en filters en sla deze vervolgens op als sjabloon. Aangepaste sjablonen zijn vooral waardevol wanneer u herhaaldelijk vergelijkbare problemen oplost.

3. S krijgentarted met SQL Server Profiler

3.1 Systeemvereisten en -vereisten

SQL Server Profiler wordt geleverd met SQL Server Management Studio en ondersteunt alle momenteel onderhouden SQL Server versies, van SQL Server 2016 te 2022.

Toestemmingsvereisten bepalen wie traces kan maken en uitvoeren. Leden van de vaste serverrol sysadmin hebben onbeperkte toegang tot SQL Server Profilerfunctionaliteit. Voor niet-systeembeheerders biedt de ALTER TRACE-machtiging de mogelijkheid om traces te maken en te beheren.

Netwerkoverwegingen zijn van toepassing bij het traceren van externe servers. Traceringen aan de clientzijde vereisen een continue netwerkverbinding tussen uw werkstation en de SQL Server Bijvoorbeeld. Onderbroken verbindingen stoppen traceringen aan de clientzijde, waardoor vastgelegde gegevens mogelijk verloren gaan. Server-side traceringen omzeilen deze beperking door volledig op de databaseserver te draaien.

3.2 Hoe te lanceren SQL Server Profiler

3.2.1 Starvan SQL Server Managementstudio (SSMS)

Volg deze stappen om te starten SQL Server Profiler van SSMS:

  1. Openen SQL Server Management Studio en maak verbinding met elke SQL Server aanleg.
  2. Klik op de knop Tools menu in de bovenste menubalk.
  3. Kies SQL Server Profiler in het dropdown menu.
  4. De SQL Server De Profiler-applicatie wordt in een nieuw venster geopend.

Start SQL Server Profiler in SQL Server Beheer Studio.

3.2.2 Starting van Windows Start-menu

Access SQL Server Gebruik de volgende stappen om Profiler rechtstreeks vanuit Windows te gebruiken:

  1. Klik op de Windows Start .
  2. Type SQL Server Profiler in het zoekvak.
  3. Kies SQL Server Profiler uit de zoekresultaten.
  4. De applicatie start zonder actieve verbindingen.

Start SQL Server Profiler via het Windows-zoekvak.

U kunt ook navigeren via de Start menu hierarchy:

  1. Open de Start .
  2. Zoek de Microsoft SQL Server Tools map.
  3. Vouw de map uit en klik SQL Server Profiler.

Start SQL Server Profiler van Windows starhet menu.

3.2.3 Verbinding maken met SQL Server Gevallen

Na de lancering SQL Server Profiler, maak een verbinding door de volgende stappen uit te voeren:

  1. Klik op het tabblad Bestand in de menubalk.
  2. Kies Nieuw spoor in het dropdown menu.
  3. De Connecteer met de server dialoogvenster verschijnt.
  4. Voer uw servernaam in het Server naam veld.
  5. Kies Windows-verificatie or SQL Server authenticatie.
  6. Als u gebruikt SQL Server Authenticatie, voer uw inloggegevens in.
  7. Klik op het tabblad Connect om de verbinding tot stand te brengen.

Maak verbinding met een SQL Server bijvoorbeeld in SQL Server Profiler.

Voor externe verbindingen moet u de volledige servernaam opgeven, inclusief de instantienaam indien van toepassing.cabGebruik de notatie SERVERNAME\INSTANCENAME voor benoemde instanties. Controleer de netwerkconnectiviteit en firewallinstellingen als verbindingspogingen mislukken.

4. Maken en configureren SQL Server Sporen

4.1 Uw eerste trace maken met behulp van een sjabloon

Maak uw eerste trace met behulp van deze stappen:

  1. Lancering SQL Server Profiler.
  2. Klik op het tabblad Bestand -> Nieuw spoor en maak verbinding met je tarserver ophalen.
  3. De Trace-eigenschappen dialoogvenster verschijnt.
  4. Voer een beschrijvende naam in het veld Spoornaam veld.
  5. Selecteer een sjabloon uit de Gebruik het sjabloon dropdown.
  6. Kies de Standaard (standaard) Sjabloon voor algemene monitoring. Of een andere sjabloon voor andere doeleinden. De sjabloon biedt vooraf geconfigureerde gebeurtenissen, kolommen en filters voor veelvoorkomende scenario's.
  7. Klik op het tabblad lopen vervolgens ptargebeurtenissen direct vastleggen.

Stel de trace-eigenschappen in SQL Server Profiler.

4.2 Pas uw trace aan

Vaak voldoen de sjablonen niet aan uw eisen. In dat geval kunt u uw trace volledig personaliseren:

  1. Zoek in de map Trace-eigenschappen dialoogvenster.
  2. Selecteer het tabblad Blanco sjabloon van de Gebruik het sjabloon dropdown.Gebruik een leeg sjabloon voor de trace.
  3. Klik op de knop Evenementenselectie Met het tabblad 'Gegevens' kunt u nu alle gebeurtenissen, gegevenskolommen en filters naar wens aanpassen. We bespreken ze in de volgende secties.
    Pas de trace aan op het tabblad 'Gebeurtenisselectie' van het dialoogvenster 'Trace-eigenschappen'.

4.3 Gebeurtenissen selecteren om vast te leggen

U kunt een gebeurtenis selecteren in de Evenementenselectie tab:

  1. Klik op de knop + pictogram naast de categorie Evenement om deze uit te vouwen.
  2. Klik op het selectievakje naast de gebeurtenis om deze te selecteren.

Selecteer een gebeurtenis in het dialoogvenster 'Trace-eigenschappen'.

4.3.1 Gebeurteniscategorieën begrijpen

SQL Server Profiler organiseert gebeurtenissen in categorieën voor logische groepering. De categorie Opgeslagen procedures bevat gebeurtenissen voor procedure-uitvoering, waaronder SP:S.tarting, SP:Completed en SP:StmtCompleted. Deze gebeurtenissen volgen opgeslagen procedure-aanroepen en de uitvoering van individuele statements binnen procedures.

De TSQL-categorie legt ad-hoc query-uitvoering vast met gebeurtenissen zoals SQL:BatchStarting en SQL:BatchCompleted. Deze gebeurtenissen volgen query's die rechtstreeks naar SQL Server buiten opgeslagen procedures.

De categorie Vergrendelingen bewaakt gelijktijdigheidsgerelateerde gebeurtenissen, waaronder Vergrendeling: Verkregen, Vergrendeling: Vrijgegeven, Vergrendeling: Deadlock en Vergrendeling: Time-out. Gebruik deze gebeurtenissen om blokkeringsproblemen en deadlocks te diagnosticeren die de applicatieprestaties beïnvloeden.

De categorie Fouten en waarschuwingen registreert uitzonderingsgebeurtenissen, waaronder uitzonderingen, waarschuwingen en gebruikersfoutmeldingen. Deze gebeurtenissen helpen bij het identificeren van toepassingsfouten en SQL Server waarschuwingen tijdens trace-sessies.

4.3.2 De juiste gebeurtenissen kiezen voor uw scenario

Prestatiebewaking vereist gebeurtenissen die het resourcegebruik vastleggen. Selecteer RPC:Completed en SQL:BatchCompleted om de uitvoering van query's te volgen. Voeg de kolommen Duur, CPU, Leesbewerkingen en Schrijfbewerkingen toe om het resourcegebruik te meten. Deze gebeurtenissen vormen de basis voor het identificeren van prestatieknelpunten.

Beveiligingscontrole vereist gebeurtenissen die authenticatie en autorisatie bijhouden. Selecteer 'Aanmelden controleren', 'Afmelden controleren', 'Aanmelden controleren mislukt' en 'Object:Geopend' om de databasetoegang te controleren. Neem de kolommen 'Aanmeldnaam', 'Databasenaam' en 'Objectnaam' op om te identificeren wie toegang heeft gehad tot welke bronnen.

Debugscenario's profiteren van uitgebreide gebeurtenisregistratie. Neem opgeslagen proceduregebeurtenissen, SQL-batchgebeurtenissen en foutgebeurtenissen op om volledige uitvoeringsstromen te traceren. Leg extra context vast met SPID, ApplicationName en H.ostGeef kolommen een naam om gebeurtenissen te correleren met specifieke sessies.

4.4 Gegevenskolommen configureren

Wanneer u een gebeurtenis selecteert, worden standaard alle gegevenskolommen geselecteerd (aangevinkt). U kunt de overbodige kolommen deselecteren om de overhead te verminderen en de analyse te vereenvoudigen:

Selecteer/deselecteer de gegevens kolommen voor een gebeurtenis in het dialoogvenster 'Trace-eigenschappen'.

Essentiële kolommen voor elke tracering omvatten EventClass om het gebeurtenistype te identificeren, TextData om de daadwerkelijke SQL-instructie vast te leggen, LoginName om de uitvoerende gebruiker te identificeren en StartTime geeft het tijdstip aan waarop de gebeurtenis plaatsvond. Deze kolommen bieden fundamentele context voor elke vastgelegde gebeurtenis.

Prestatiegerelateerde kolommen meten het resourceverbruik. Duur geeft aan hoe lang een gebeurtenis duurde in microseconden. CPU toont de processortijd in milliseconden. Leesbewerkingen tellen het aantal leesbewerkingen van logische pagina's. Schrijfbewerkingen volgen het aantal schrijfbewerkingen van logische pagina's. Deze statistieken identificeren resource-intensieve bewerkingen die optimalisatie vereisen.

Beveiligings- en auditkolommen volgen patronen voor gegevenstoegang. Databasenaam geeft aan welke database is geraadpleegd. Objectnaam specificeert de betrokken tabel of het betrokken object. Toepassingsnaam onthult welke applicatie de activiteit heeft geïnitieerd. Samen bieden deze kolommen uitgebreide audittrails.

4.5 Filters instellen om ruis te verminderen

4.5.1 Algemene filtercriteria

Configureer filters met behulp van de volgende aanpak:

  1. Open de Trace-eigenschappen dialoogvenster.
  2. Klik op de knop Evenementenselectie .
  3. Klik op het tabblad Kolomfilters knop rechtsonder.
    Klik op de knop 'Kolomfilters' in het dialoogvenster 'Trace-eigenschappen'.
  4. Selecteer een kolom uit de lijst aan de linkerkant.
  5. Configureer filtercriteria in het paneel aan de rechterkant.
    Stel het filter voor een gegevenskolom in het dialoogvenster 'Trace-eigenschappen' in.
  6. Klik op het tabblad OK om het filter toe te passen.

Toepassingsnaamfilters isoleren activiteit van specifieke toepassingen. Vouw de kolom Toepassingsnaam uit in het filterdialoogvenster en voer uw toepassingsnaam in het veld Like veld, en SQL Server Profiler registreert alleen gebeurtenissen van die applicatie. Dit filter is van onschatbare waarde bij het oplossen van applicatiespecifieke problemen.

Filters voor databasenamen beperken de vastlegging tot specifieke databases. Filter op Databasenaam om systeemdatabaseactiviteit uit te sluiten en u te concentreren op uw applicatiedatabases. Voer databasenamen in het veld Like or Gelijk veld, afhankelijk van of u jokertekens nodig hebt.

Duurfilters registreren alleen langzaam lopende bewerkingen. Stel een minimumdrempel in de Groter dan of gelijk aan veld onder de kolom Duur. Als u bijvoorbeeld Duur >= 1000 instelt, worden alleen gebeurtenissen vastgelegd die langer dan een seconde duren, waardoor snel uitgevoerde query's worden uitgefilterd.

Gebruikersnaamfilters volgen specifieke gebruikersactiviteit. Filter op LoginName om specifieke databasegebruikers te monitoren. Deze aanpak helpt identificeren welke gebruikers problematische query's uitvoeren of toegang hebben tot gevoelige gegevens.

4.4.2 Aanbevolen werkwijzen voor filters

Effectieve filtering zorgt voor een evenwicht tussen gegevensverzameling en prestatie-impact. Pas altijd minstens één filter toe om overmatige systeemactiviteit te voorkomen. De filters DatabaseName en ApplicationName moeten uw s zijn.tarpunt voor most sporen.

Vermijd te brede traces in productieomgevingen. Ongefilterde traces leggen enorme hoeveelheden data vast, wat de serverprestaties kan verslechteren en analyse onpraktisch kan maken. Stel specifieke filtercriteria in die taruw doelstellingen voor probleemoplossing behalen.

Test filters voordat u ze in productie implementeert. Voer eerst traces uit in ontwikkel- of testomgevingen om te controleren of filters verwachte gebeurtenissen vastleggen zonder overmatige overhead. Pas filtercriteria aan op basis van de hoeveelheid vastgelegde gegevens.

4.5 Werken met tracesjablonen

4.5.1 Overzicht van ingebouwde sjablonen

De standaardsjabloon biedt een evenwichtige gebeurtenisregistratie die geschikt is voor algemene monitoring. Het omvat veelvoorkomende query-uitvoeringsgebeurtenissen, opgeslagen procedure-aanroepen en basisfoutregistratie. Gebruik deze sjabloon wanneer u volledig inzicht nodig hebt zonder precies te weten waar u op moet letten.

De TSQL-sjabloon richt zich specifiek op query-uitvoering met minimale gebeurtenisselectie. Het legt SQL:BatchCompleted- en RPC:Completed-gebeurtenissen vast met essentiële kolommen voor prestatieanalyse. Deze sjabloon biedt een lagere overhead dan de standaardsjabloon.

De Tuning-sjabloon optimaliseert de gebeurtenisselectie voor Database Engine Tuning Advisor-analyse. Het legt gebeurtenissen en kolommen vast die nodig zijn voor workloadanalyse en indexaanbevelingen. Gebruik deze sjabloon bij het voorbereiden van traces voor geautomatiseerde prestatie-afstemming.

De TSQL_Replay-sjabloon bevat alle gebeurtenissen en kolommen die nodig zijn voor trace replay-functionaliteit. Het legt uitgebreide uitvoeringsdetails vast, zodat u vastgelegde workloads in testomgevingen kunt reproduceren. Deze sjabloon genereert grotere trace-bestanden dankzij de uitgebreide gegevensverzameling.

4.5.2 Aangepaste sjablonen maken

Maak aangepaste sjablonen door de volgende stappen uit te voeren:

  1. Klik op het tabblad Bestand -> Templates -> Nieuwe sjabloon …
  2. Voer een beschrijvende naam in het veld Nieuwe sjabloonnaam veld.
  3. Optioneel, controleer Baseer een nieuwe sjabloon op een bestaande en selecteer een bestaande sjabloon als u niet vanaf nul wilt beginnen:
    Maak een nieuwe sjabloon in de SQL Server Profiler.
  4. Klik op de knop Gebeurtenisselectie tabblad, pas de tracesjabloon aan met uw gewenste gebeurtenissen, kolommen en filters, net zoals u doen met een normaal spoor.
  5. Klik op het tabblad Opslaan om de sjabloon op te slaan.

Exporteer sjablonen om te delen met teamleden of voor back-updoeleinden:

  1. Klik op het tabblad Bestand -> Templates -> Sjabloon exporteren.
  2. Selecteer de sjabloon die u wilt exporteren.
    Exporteer een traceersjabloon in de SQL Server Profiler.
  3. Navigeer naar de gewenste opslaglocatie.
  4. Voer een bestandsnaam in en klik op Opslaan.
  5. Deel het *.tdf-bestand (SQL Server Profiler-sjabloonbestand) met andere SQL Server Profiler-gebruikers.

4.6 Trace-uitvoer opslaan

Standaard SQL Server Profiler toont de gebeurtenissen in het tracevenster, maar slaat ze NIET op. U kunt ervoor kiezen om de tracegegevens op te slaan in een bestand of tabel in het Trace-eigenschappen dialoogvenster wanneer u een nieuw spoor maakt.

4.6.1 Opslaan in bestand

  1. Zoek in de map Trace-eigenschappen dialoogvenster, vink aan Opslaan in bestand.
  2. Klik op het mappictogram om de bestandsbrowser te openen.
  3. Navigeer naar de gewenste opslaglocatie.
  4. Voer een bestandsnaam in met de extensie .trc.
  5. Klik op het tabblad Opslaan.
  6. Zet Maximale bestandsgrootte instellen om de grootte van individuele bestanden te beperken.
  7. Enable Bestandsrollover inschakelen om meerdere bestanden te maken.
  8. Optioneel inschakelen Server verwerkt traceergegevens voor server-side traces.

Geef in het dialoogvenster 'Trace-eigenschappen' aan dat traceringsgegevens in een bestand moeten worden opgeslagen.

Bestandsgroottebeheer voorkomt uitputting van de schijfruimte. Stel de maximale bestandsgrootte in op een redelijke waarde, zoals 500 MB of 1 GB, op basis van de beschikbare schijfruimte en de verwachte traceduur. Bestandsrollover maakt automatisch nieuwe bestanden aan wanneer de limiet is bereikt en voegt een getal toe aan de bestandsnaam.

4.6.2 Opslaan in tabel

  1. Zoek in de map Trace-eigenschappen dialoogvenster, vink aan Opslaan in tabel.
  2. De Bestemmingstabel dialoogvenster verschijnt.
    Selecteer de doeltabel waarin de traceringsgegevens moeten worden opgeslagen.
  3. Selecteer de server uit de Server dropdown.
  4. Kies de database uit de Database dropdown.
  5. Selecteer een bestaande tabel of voer een nieuwe tabelnaam in het veld tafel veld.
  6. Klik op het tabblad OK bevestigen.
  7. Optioneel instellen Maximaal aantal rijen instellen om de tafelgrootte te beperken.

Instellen dat traceringsgegevens in een tabel worden opgeslagen in het dialoogvenster 'Trace-eigenschappen'.

Prestatieoverwegingen zijn van toepassing bij het opslaan in tabellen. Tabelopslag brengt extra overhead met zich mee in vergelijking met bestandsopslag, omdat SQL Server Moet traceergegevens via de opslagengine schrijven. Gebruik tabelopslag wanneer u traceergegevens direct met T-SQL wilt opvragen.

Gegevensretentie is belangrijk voor tabelgebaseerde traceringen. Stel maximale rijlimieten in om te voorkomen dat tabellen te groot worden. Archiveer of verwijder oude traceringsgegevens regelmatig om de prestaties te behouden. Overweeg het partitioneren van grote traceringstabellen voor betere beheersbaarheid.

5. Uitvoeren en beheren SQL Server Sporen

5.1 Starsporen pauzeren en stoppen

Beheer de uitvoering van traceringen met behulp van de knoppen op de werkbalk:Beheer sporen via knoppen op de werkbalk in SQL Server Profiler.

  • De groene Start begint met het vastleggen van gebeurtenissen volgens uw configuratie.
  • Klik op het tabblad pauze naar temporarDe gegevensverzameling kan worden onderbroken zonder de verbinding te verliezen.
  • Klik op het tabblad stop om het spoor te beëindigen en de verbinding te sluiten.

Via menu-items:
Beheer sporen via menu-items in SQL Server Profiler.

Klik met de rechtermuisknop op een item in het traceervenster:

Beheer sporen via menu-items met de rechtermuisknop in SQL Server Profiler.

Trace lifecycle management heeft invloed op serverbronnen. Actieve traces verbruiken geheugen en processorkracht in verhouding tot het aantal vastgelegde gebeurtenissen. Pauzeer traces tijdens periodes waarin monitoring niet nodig is om de overhead te verminderen. Stop traces volledig wanneer de analyse is voltooid om bronnen vrij te maken.

Traces aan de clientzijde vereisen een actieve Profiler-verbinding. Het sluiten van de SQL Server Het Profiler-venster stopt traceringen aan clientzijde onmiddellijk. Minimaliseer het Profiler-venster in plaats van het te sluiten om traceringen actief te houden terwijl u in andere applicaties werkt.

5.2 Realtime tracebewaking

Volg vastgelegde gebeurtenissen terwijl ze plaatsvinden in het hoofdtraceringsvenster. Elke rij vertegenwoordigt één gebeurtenis met kolommen die de gebeurteniseigenschappen weergeven. Het raster wordt continu bijgewerkt tijdens actieve traceringen en toont de most Recente gebeurtenissen staan ​​standaard onderaan.

Realtime tracemonitor in SQL Server Profiler.

Identificeer patronen en problemen door de frequentie en kenmerken van gebeurtenissen te observeren. Gebeurtenissen met een lange duur duiden op prestatieproblemen. Frequente fouten wijzen op applicatieproblemen. Ongebruikelijke inlogactiviteiten kunnen wijzen op beveiligingsproblemen. Realtime monitoring maakt direct reageren op opkomende problemen mogelijk.

Blader door vastgelegde gebeurtenissen om specifieke gebeurtenissen te bekijken. Klik op een rij om een ​​gebeurtenis te selecteren en de volledige details te bekijken. Dubbelklik op gebeurtenissen om gedetailleerde eigenschappendialoogvensters te openen met alle kolomwaarden. Gebruik de scrollvergrendeling om automatisch scrollen te voorkomen tijdens het bekijken van historische gebeurtenissen.

5.3 Meerdere gelijktijdige traceringen beheren

Het gelijktijdig uitvoeren van meerdere traces biedt flexibiliteit voor complexe monitoringscenario's. Maak aparte traces voor verschillende aspecten van databaseactiviteit, zoals één trace voor prestatiemonitoring en een andere voor beveiligingsaudits. Elke trace wordt onafhankelijk uitgevoerd met een eigen configuratie.

Beheer meerdere gelijktijdige sporen in SQL Server Profiler.

Resourcetoewijzing wordt cruciaal bij meerdere traces. Elke actieve trace verbruikt geheugen, CPU en mogelijk ook schijf-I/O. Beperk het aantal gelijktijdige traces en zorg ervoor dat elke trace de juiste filters gebruikt om de overhead te minimaliseren. Bewaak de serverprestaties tijdens het uitvoeren van meerdere traces.

Coördineer de timing van traces om overlappende traces met hoge overheadkosten te voorkomen. Voer resource-intensieve traces indien mogelijk uit tijdens perioden met weinig activiteit. Plan verschillende traces op verschillende tijdstippen in plaats van alles tegelijkertijd uit te voeren.

5.4 Client-side traces versus server-side traces

Standaard is een nieuw gecreëerde trace een client-side trace, waarvoor een actieve verbinding nodig is SQL Server Profiler naar de databaseserver. De trace stopt onmiddellijk als de verbinding verbroken is.ost of Profiler is gesloten.

U kunt ook een server-side trace maken, die volledig op de server draait. SQL Server instantie zonder dat een actieve Profiler-verbinding nodig is. Server-side trace blijft actief, zelfs na het sluiten SQL Server Profiler, gegevens schrijven naar de opgegeven bestandslocatie.

Om een ​​server-side trace te maken:

  1. Klik op Bestand -> Nieuw spoor …
  2. Zoek in de map Trace-eigenschappen dialoogvenster, vink aan Opslaan in bestand
  3. Geef de bestandslocatie en andere instellingen op.
  4. Enable Server verwerkt traceergegevens om een ​​server-side trace te maken.

Maak een server-side trace in SQL Server Profiler.

De prestatie-implicaties verschillen aanzienlijk per tracetype. Client-side traces moeten gegevens via het netwerk naar de Profiler-interface verzenden, wat leidt tot meer latentie en bandbreedteverbruik. Server-side traces zorgen voor minder overhead omdat gegevens rechtstreeks naar schijf op de server worden geschreven.

Gebruik traceringen aan de clientzijde voor ad-hoc probleemoplossing en snelle diagnoseostic-sessies en situaties waarin directe visuele feedback waardevol is. Kies server-side traces voor productiemonitoring, langdurige vastleggingen en scenario's die onbeheerde werking vereisen.

6. Analyseren SQL Server Profilergegevens

6.1 Opgeslagen traces openen en bekijken

Laad opgeslagen tracebestanden met behulp van de volgende stappen:

  1. Lancering SQL Server Profiler.
  2. Klik op het tabblad Bestand -> Openen -> Trace-bestand.
  3. Navigeer naar de locatie van het tracebestand.
  4. Selecteer het .trc-bestand en klik Openen.
  5. De traceergegevens worden in het hoofdvenster geladen.

Laad tracetabellen volgens dit proces:

  1. Klik op het tabblad Bestand -> Openen -> Traceertabel.
  2. Maak verbinding met de server hostde traceertabel.
  3. Selecteer de database uit de Database dropdown.
  4. Kies de tabel uit de tafel dropdown.
  5. Klik op het tabblad OK om de gegevens te laden.

6.2 Trace-gegevens filteren en doorzoeken

6.2.1 Post-Capture-filtering

Pas filters toe op geladen traceringsgegevens met behulp van de volgende stappen:

  1. Klik op het tabblad Edit -> Find of druk Ctrl + F.
  2. Voer zoektekst in de Zoeken naar veld.
  3. Selecteer de kolom waaruit u wilt zoeken Kijk in dropdown.
  4. Klik op het tabblad Volgende zoeken om overeenkomende gebeurtenissen te vinden.

Vind sporengegevens in SQL Server Profiler.

Filteren op basis van kolommen verfijnt de weergegeven gegevens zonder gebeurtenissen opnieuw vast te leggen. Klik met de rechtermuisknop op een kolomkop en selecteer filteropties in het contextmenu. Voer filtercriteria in om alleen overeenkomende rijen weer te geven. Deze aanpak versnelt de analyse door irrelevante gebeurtenissen te verbergen.

6.2.2 Specifieke gebeurtenissen vinden

Zoekfunctionaliteit helpt bij het vinden van specifieke gebeurtenissen in grote tracebestanden. Gebruik het dialoogvenster Zoeken om te zoeken op tekstinhoud, gebeurtenistype of kolomwaarde. Reguliere expressies maken complexe zoekpatronen mogelijk indien nodig.

Markeer belangrijke gebeurtenissen voor snelle referentie tijdens de analyse. Klik met de rechtermuisknop op interessante gebeurtenissen en selecteer bladwijzeropties om ze te markeren. Navigeer tussen bladwijzers met behulp van sneltoetsen of menuopdrachten, waardoor u gerelateerde gebeurtenissen gemakkelijker kunt vergelijken.

6.3 Groeperen en aggregeren van gebeurtenissen

Groepeer gebeurtenissen op kolomwaarden om patronen te identificeren en activiteiten samen te vatten. Klik met de rechtermuisknop op een kolomkop en selecteer Groeperen op deze kolom om gebeurtenissen te organiseren. Gegroepeerde weergaven vouwen vergelijkbare gebeurtenissen samen, waardoor algemene patronen gemakkelijker te zien zijn.

Geaggregeerde weergaven bieden statistische samenvattingen van traceringsgegevens. Groepeer op tekstgegevens om te zien hoe vaak elke query is uitgevoerd. Groepeer op inlognaam om activiteitensamenvattingen per gebruiker te bekijken. Aggregatie onthult patronen die niet direct zichtbaar zijn in gedetailleerde gebeurtenislijsten.

Vouw groepen uit en in om specifieke categorieën te bekijken. Klik op de plus- en min-pictogrammen naast groepskoppen om gegroepeerde gebeurtenissen weer te geven of te verbergen.rarChique weergave vergemakkelijkt top-down analyse, starwerken met patronen op hoog niveau en in details duiken.

6.4 SQL-query's uit traceringen extraheren

U kunt als volgt query's uit traceringsgegevens ophalen:

  1. Zoek de gewenste query in het traceerraster.
  2. Klik op de rij om de gebeurtenis te selecteren.
  3. Bekijk de volledige querytekst in het onderste paneel.
  4. Druk op Ctrl + A om alle zoektekst te selecteren.
  5. Druk op Ctrl + C om de querytekst te kopiëren.
  6. Plak de query in Management Studio voor verdere analyse.

Haal de SQL-query uit de trace-gebeurtenis.

Identificeer problematische query's door te sorteren op prestatiekolommen. Klik op de kolomkop 'Duur' om te sorteren op uitvoeringstijd. De langzaamste query's verschijnen bovenaan of onderaan, afhankelijk van de sorteerrichting. Sorteer op vergelijkbare wijze op CPU, leesbewerkingen of schrijfbewerkingen om resource-intensieve bewerkingen te identificeren.

Exporteer query's voor testdoeleinden door ze te kopiëren van de trace naar queryvensters. Wijzig geëxtraheerde query's om optimalisatiestrategieën te testen. Vergelijk uitvoeringsplannen en prestatiegegevens tussen de originele en geoptimaliseerde versies.

6.5 Gebeurtenissen correleren en uitvoeringsstroom begrijpen

Ouder-kindgebeurtenisrelaties tonen uitvoering hierarchies. SQL:BatchStarting-gebeurtenissen bovenliggende SQL:StmtStarting-gebeurtenissen, die op hun beurt de uitvoeringsgebeurtenissen van procedures veroorzaken. Inzicht in deze relaties helpt bij het traceren van volledige uitvoeringspaden door uw code.

Transactietracking verbindt gerelateerde gebeurtenissen door de tijd heen. Gebruik de SPID-kolom om gebeurtenissen per sessie te groeperen. Binnen een sessie vinden gebeurtenissen plaats in chronologische volgorde, wat de volgorde van bewerkingen weergeeft. Deze weergave laat zien hoe verschillende bewerkingen binnen transacties samenwerken.

Correleer gebeurtenissen door gedeelde kolomwaarden te onderzoeken. Gebeurtenissen met een identieke SPID vonden plaats in dezelfde sessie. Gebeurtenissen met dezelfde ApplicationName kwamen uit dezelfde applicatie. Gebruik deze correlaties om complexe uitvoeringsscenario's te begrijpen.

7. Gemeenschappelijk SQL Server Profiler-gebruiksscenario's

7.1 Problemen met prestaties oplossen

7.1.1 Langzame query's identificeren

Vang langzame query's op met de volgende configuratie:

  1. Maak een nieuw spoor met behulp van de TSQL sjabloon.
  2. Zoek in de map Evenementenselectie tabblad, verifiëren SQL:BatchVoltooid en RPC:Voltooid zijn geselecteerd.
  3. Klik op het tabblad Kolomfilters.
  4. Kies Duur uit de kolommenlijst.
  5. Voer 1000000 in de Groter dan of gelijk aan veld om zoekopdrachten vast te leggen die langer dan 1 seconde duren.
  6. Klik op het tabblad OK en starop het spoor.
  7. Voer de trace uit tijdens perioden waarin het gebruik het hoogst is.
  8. Stop het traceren en sorteer op Duur om de langzaamste query's te identificeren.

Analyse op basis van duur onthult patronen in de uitvoeringstijd. Sorteer vastgelegde gebeurtenissen op de kolom Duur om de langstlopende bewerkingen eerst te bekijken. Bekijk de kolom Tekstgegevens voor deze gebeurtenissen om de daadwerkelijke query's te identificeren die verantwoordelijk zijn voor vertragingen.

CPU- en I/O-intensieve query's vereisen verschillende optimalisatiebenaderingen. Sorteer op CPU-kolom om processorgebonden query's te vinden die algoritmische verbeteringen nodig hebben. Sorteer op lees- of schrijfkolommen om I/O-gebonden query's te identificeren die baat hebben bij indexering of queryherschrijving.

7.1.2 Blokkeringen en deadlocks detecteren

Configureer blokkeringsdetectie met behulp van de volgende stappen:

  1. Maak een nieuw spoor.
  2. Zoek in de map Evenementenselectie tabblad, uitvouwen Sloten.
  3. Kies Vergrendeling: Deadlock en Slot: Deadlock Chain.
  4. Uitvouwen Fouten en waarschuwingen.
  5. Kies Rapport geblokkeerd proces.
  6. Kolommen opnemen: SPID, Tekstgegevens, Database naam, Inlog naam.
  7. Starde trace en monitor op vergrendelingsgebeurtenissen.

Lock:Deadlock-gebeurtenisbewaking brengt gelijktijdigheidsproblemen aan het licht die de applicatieprestaties beïnvloeden. Lock:Deadlock-gebeurtenissen geven aan wanneer SQL Server Gedetecteerde en opgeloste deadlocksituaties. Lock:Deadlock Chain-gebeurtenissen tonen de processen die betrokken zijn bij deadlocks.

Deadlockgrafieken bieden visuele weergaven van deadlockscenario's. Wanneer een deadlockgebeurtenis optreedt, bevat de kolom TextData XML die de deadlock beschrijft. Kopieer deze XML en open deze in SQL Server Management Studio om een ​​grafisch deadlockdiagram te bekijken waarin wordt aangegeven welke processen elkaar blokkeren.

7.1.3 Ontbrekende indexen vinden

Leg de werklast voor indexanalyse vast met behulp van de volgende stappen:

  1. Maak een nieuw spoor met behulp van de Stemming sjabloon.
  2. Configureer de trace om deze op te slaan in een bestand.
  3. Voer de trace uit tijdens representatieve werklastperioden.
  4. Zorg dat je minimaal een aantal uren actief bent.
  5. Stop het traceren en sla het bestand op.
  6. Start Database Engine Tuning Advisor.
  7. Selecteer het traceringsbestand als de werklastbron.
  8. Voer de analyse uit om indexaanbevelingen te ontvangen.

Integratie met Database Engine Tuning Advisor automatiseert indexaanbevelingen. De Tuning Advisor analyseert de vastgelegde workload en stelt indexen voor die de prestaties verbeteren. Bekijk de aanbevelingen zorgvuldig vóór de implementatie, rekening houdend met opslagoverhead en onderhoudskosten.osts.

7.2 Problemen met applicaties oplossen

7.2.1 Toepassingsfouten debuggen

Volg toepassingsfouten met deze configuratie:

  1. Maak een nieuw spoor.
  2. Uitvouwen Fouten en waarschuwingen op het tabblad Gebeurtenisselectie.
  3. Kies uitzondering, Gebruikersfoutberichten Aandacht.
  4. Kolommen opnemen: Fout, Tekstgegevens, Naam van de toepassing, SPID.
  5. Filteren op Naam van de toepassing om u te concentreren op uw aanvraag.
  6. Starde trace en reproduceer het foutscenario.
  7. Controleer vastgelegde foutgebeurtenissen voor diagnoseostic-informatie.

Foutenregistratie onthult uitzonderingsdetails die vaak verborgen zijn voor applicaties. De kolom Fout bevat SQL Server Foutnummers. De kolom TextData toont foutmeldingen en de query die de fout heeft veroorzaakt. De kolom Ernst geeft de ernstniveaus van de fouten aan.

Uitzonderingsbewaking registreert runtimeproblemen, waaronder schendingen van beperkingen, machtigingsfouten en time-outs. Correleer foutgebeurtenissen met eerdere querygebeurtenissen om te begrijpen wat de uitzonderingen heeft geactiveerd.

7.2.2 Traceren van applicatie-naar-databasecommunicatie

Volg deze stappen om de applicatieactiviteit te controleren:

  1. Maak een nieuw spoor met behulp van de Standaard sjabloon.
  2. Klik op het tabblad Kolomfilters.
  3. Kies Naam van de toepassing en voer uw applicatienaam in de Like veld.
  4. Optioneel filteren op HostNaam om specifieke servers te isoleren.
  5. Starde trace tijdens applicatiebewerkingen.
  6. Bekijk vastgelegde gebeurtenissen om alle database-interacties te zien.

Met toepassingsnaamfiltering worden query's van specifieke toepassingen geïsoleerd. SQL Server Stelt de applicatienaam in op basis van verbindingsreeksen, waardoor het eenvoudig is om individuele applicaties te traceren in omgevingen met meerdere applicaties. Controleer of uw verbindingsreeks de parameter 'Applicatienaam' bevat voor effectieve filtering.

Verbindingstracking toont de levenscyclus van sessies, inclusief inlog-, query- en afmeldgebeurtenissen. Controleer de verbindingsaanmaaksnelheid om problemen met connection pooling te identificeren. Overmatig verbindingsverloop duidt op mogelijke configuratieproblemen met de applicatie.

7.2.3 Toepassingsgedrag valideren

Controleer het verwachte applicatiegedrag met behulp van trace-analyse. Leg alle databasebewerkingen vast tijdens een bedrijfstransactie en controleer of de juiste query's in de juiste volgorde worden uitgevoerd. Vergelijk de daadwerkelijk vastgelegde query's met het verwachte gedrag om afwijkingen te identificeren.

Parametervalidatie zorgt ervoor dat applicaties de juiste waarden doorgeven aan opgeslagen procedures en geparameteriseerde query's. Controleer de vastgelegde querytekst om te controleren of de parameterwaarden aan de verwachtingen voldoen. Onjuiste parameters veroorzaken vaak logische fouten die zich manifesteren als onjuiste bedrijfsresultaten.

7.3 Beveiligingscontrole

7.3.1 Inlogpogingen monitoren

Configureer login monitoring met behulp van de volgende stappen:

  1. Maak een nieuw spoor.
  2. Uitvouwen Security Audit op het tabblad Gebeurtenisselectie.
  3. Kies Audit-inlog, Audit-uitloggenen Audit-aanmelding mislukt.
  4. Kolommen opnemen: Inlog naam, HostNaam, Naam van de toepassing, StartTijd.
  5. Starde trace om authenticatieactiviteit te monitoren.
  6. Controleer mislukte aanmeldgebeurtenissen op mogelijke beveiligingsproblemen.

Succesvolle en mislukte inlogpogingen bieden uitgebreide authenticatietracking. Audit Login-gebeurtenissen registreren succesvolle authenticatiepogingen met gebruikersidentiteit en broninformatie. Audit Login Failed-gebeurtenissen geven mislukte inlogpogingen aan die mogelijk aanvallen of configuratieproblemen vertegenwoordigen.

Authenticatietracking onthult patronen in databasetoegang. Controleer de inlogfrequentie om ongebruikelijke activiteiten te detecteren. Meerdere mislukte inlogpogingen gevolgd door een succesvolle inlog kunnen wijzen op gecompromitteerde inloggegevens. Mislukte inlogpogingen vanaf onverwachte locaties vereisen onderzoek.

7.3.2 Gegevenstoegang en -wijzigingen volgen

Controleer de toegang tot gegevens met deze configuratie:

  1. Maak een nieuw spoor.
  2. Uitvouwen Security Audit.
  3. Kies Toegang tot auditdatabaseobjecten.
  4. Kolommen opnemen: ObjectName, Inlog naam, Tekstgegevens, Database naam.
  5. Filteren op ObjectName om specifieke gevoelige tabellen te bewaken.
  6. Starhet spoor om toegangspogingen vast te leggen.

Tracking met SELECT, INSERT, UPDATE en DELETE biedt uitgebreide controle op gegevenswijzigingen. Registreer SQL:BatchCompleted-gebeurtenissen met de juiste filters om alle gegevenstoegangsbewerkingen te monitoren. Filter op ObjectName of TextData om te focussen op gevoelige tabellen.

Toegang tot gevoelige gegevens vereist zorgvuldige monitoring om naleving van het beveiligingsbeleid te garanderen. Creëer traceringen specifiek voor tabellen met persoonlijke informatie, financiële gegevens of andere vertrouwelijke informatie. Controleer toegangspatronen regelmatig om ongepaste toegang tot gegevens te identificeren.

7.3.3 Identificeren van ongeoorloofde activiteiten

Detecteer verdachte activiteit door querypatronen in vastgelegde traces te analyseren. Zoek naar ongebruikelijke query's die niet overeenkomen met normaal applicatiegedrag. SELECT-instructies zonder WHERE-clausule die volledige tabellen ophalen, kunnen wijzen op pogingen tot data-exfiltratie.

Pogingen tot escalatie van privileges worden weergegeven als machtigingsfouten of pogingen om beheeropdrachten uit te voeren. Controleer op query's die proberen toegang te krijgen tot systeemtabellen, de serverconfiguratie te wijzigen of privileged accounts aan te maken. Filter op foutgebeurtenissen en controleer de kolom TextData op verdachte activiteit.

7.4 Capaciteitsplanning en werklastanalyse

Stel basislijnen vast door de representatieve werklast tijdens normale werkzaamheden vast te leggen. Voer traces uit tijdens normale kantooruren om inzicht te krijgen in standaardactiviteitspatronen. Sla deze traces op als prestatiebasislijnen voor toekomstige vergelijking.

Identificatie van piekgebruik laat zien wanneer uw systeem de maximale belasting ervaart. Registreer traceringen over verschillende tijdsperioden, waaronder kantooruren, batchverwerkingsvensters en activiteiten buiten kantooruren. Analyseer het aantal gebeurtenissen en het resourceverbruik om piekperiodes te identificeren.

Patronen van resourcegebruik komen naar voren uit workloadanalyse. Groepeer gebeurtenissen op tijdsintervallen om de activiteitsverdeling over de dag te bekijken. Bereken geaggregeerde CPU-, schijf-I/O- en duurgegevens om het resourceverbruik te kwantificeren. Gebruik deze gegevens om capaciteitsuitbreidingen te plannen of optimalisatiemogelijkheden te identificeren.

8. gevorderd SQL Server Profiler-technieken

8.1 Server-side traces maken met T-SQL

8.1.1 Sp_trace_create en gerelateerde procedures gebruiken

Creëer server-side traces programmatisch met behulp van T-SQL stored procedures. Deze aanpak maakt het mogelijk om automatisch traces te creëren en te beheren zonder dat er een extra server nodig is. SQL Server Grafische interface van Profiler.

Definieer een server-side trace met behulp van deze voorbeeldcode:

  1. Declareer variabelen voor trace-ID en bestandspad.
  2. Roep sp_trace_create aan om een ​​nieuwe trace te maken.
  3. Gebruik sp_trace_setevent om gebeurtenissen en kolommen toe te voegen.
  4. Gebruik optioneel sp_trace_setfilter om filters te configureren.
  5. Roep sp_trace_setstatus aan naar starop het spoor.

De procedure sp_trace_create initialiseert een nieuwe tracedefinitie. Specificeer het pad naar het uitvoerbestand, de maximale bestandsgrootte en rolloveropties. De procedure retourneert een trace-ID die in volgende procedureaanroepen wordt gebruikt om de trace te configureren.

Voeg gebeurtenissen toe met de sp_trace_setevent-procedure. Geef de trace-ID, gebeurtenis-ID en kolom-ID op voor elke gebeurtenis-kolomcombinatie die u wilt vastleggen. Roep deze procedure meerdere keren aan om volledige trace-configuraties te bouwen.

Configureer filters met de sp_trace_setfilter-procedure. Specificeer de trace-ID, kolom-ID, logische operator, vergelijkingsoperator en filterwaarde. Meerdere filteraanroepen worden gecombineerd om complexe filtercriteria te creëren.

Starde trace door sp_trace_setstatus aan te roepen met statuswaarde 1. Stop traces door dezelfde procedure aan te roepen met statuswaarde 0. Verwijder tracedefinities door deze aan te roepen met statuswaarde 2.

8.1.2 Voordelen van server-side traces

Lagere clientoverhead maakt server-side traces ideaal voor productiemonitoring. De databaseserver verwerkt alle tracebewerkingen zonder de resources van de clientcomputer te verbruiken. Er wordt geen netwerkbandbreedte verbruikt voor het verzenden van gebeurtenissen naar een clienttoepassing.

Geautomatiseerde uitvoering maakt onbeheerde tracering mogelijk. Server-side traceringen blijven actief na het aanmaken, zelfs als er geen clientverbinding is. Plan het aanmaken van traceringen via SQL Server Agenttaken voor geautomatiseerde monitoring.

Server-side verwerking heeft een lagere prestatie-impact. Gebeurtenissen worden rechtstreeks naar schijf geschreven zonder aanvullende serialisatie of netwerktransmissie. Bufferbeheer optimaliseert schijf-I/O voor betere algehele prestaties.

8.2 Trace Replay-functionaliteit

8.2.1 Sporen vastleggen voor herhaling

Maak replay-ready traces door de volgende stappen uit te voeren:

  1. Maak een nieuw spoor met behulp van de TSQL_Replay sjabloon.
  2. Controleer of alle vereiste gebeurtenissen en kolommen zijn geselecteerd.
  3. Configureer de trace om deze op te slaan in een bestand.
  4. Voer de trace uit tijdens de werklastperiode die u wilt vastleggen.
  5. Stop het traceren en sla het bestand op.

Vereiste gebeurtenissen en kolommen zorgen voor een volledige trace-replay. De TSQL_Replay-sjabloon bevat alle benodigde gebeurtenistypen en gegevenskolommen. Ontbrekende vereiste elementen verhinderen een succesvolle replay, dus gebruik altijd deze sjabloon bij het vastleggen voor replay-doeleinden.

8.2.2 Traces opnieuw afspelen

Speel vastgelegde workloads opnieuw af met behulp van de volgende stappen:

  1. In SQL Server Profiler, klik Bestand -> Openen -> Trace-bestand.
  2. Selecteer het tracebestand dat klaar is om afgespeeld te worden.
  3. Klik op het tabblad Replay -> Start.
  4. Maak verbinding met de tarserver ophalen in het herhalingsdialoogvenster.
  5. Configureer de afspeelopties, zoals de volgorde en timing van de herhalingen.
  6. Klik op het tabblad OK om de herhaling te starten.
  7. Volg de voortgang van het afspelen in het statusvenster.

Opties voor de replayconfiguratie bepalen hoe SQL Server Profiler reproduceert de vastgelegde workload. Speel gebeurtenissen opnieuw af in de volgorde waarin ze zijn vastgelegd om de tijdsrelaties te behouden. Configureer of de oorspronkelijke timing behouden moet blijven of dat gebeurtenissen zo snel mogelijk opnieuw moeten worden afgespeeld.

8.2.3 Gebruiksscenario's voor Trace Replay

Load testing profiteert van trace replay omdat het realistische workloads reproduceert. Leg productieworkloadtraces vast en speel ze af tegen testsystemen om de prestaties bij daadwerkelijke gebruikspatronen te valideren. Pas gelijktijdigheidsinstellingen aan om verschillende belastingsniveaus te simuleren.

Validatie van omgevingsmigratie zorgt ervoor dat nieuwe systemen bestaande workloads aankunnen. Leg sporen vast van huidige productiesystemen en speel ze af op nieuwe hardware of bijgewerkte hardware. SQL Server versies. Vergelijk prestatiegegevens om te controleren of migraties de prestaties niet verslechteren.

Testscenario's omvatten regressietesten na codewijzigingen, het valideren van wijzigingen in de optimizer over SQL Server versies en stresstests van hardwareconfiguraties. Replay biedt consistente, herhaalbare workloads voor betrouwbare tests.

8.3 SQL Profiler integreren met Database Engine Tuning Advisor

Maak workloadbestanden voor Database Engine Tuning Advisor door traces met de juiste gebeurtenissen vast te leggen. Gebruik de Tuning-sjabloon om ervoor te zorgen dat alle benodigde informatie voor analyse wordt vastgelegd.

Start Database Engine Tuning Advisor en selecteer uw tracebestand als workloadbron. De adviseur analyseert vastgelegde query's en adviseert over indexen, geïndexeerde weergaven of partitioneringsstrategieën die de prestaties zouden verbeteren.

De workflow voor prestatieoptimalisatie integreert trace capture met tuninganalyse. Leg representatieve workloads vast tijdens normale werkzaamheden, analyseer ze met Tuning Advisor, beoordeel aanbevelingen, test voorgestelde wijzigingen in de ontwikkeling en implementeer uiteindelijk goedgekeurde wijzigingen in de productieomgeving.

8.4 Trace-verzameling automatiseren

Plan sporen met behulp van SQL Server Agenttaken om automatisch gegevens te verzamelen. Maak T-SQL-scripts die server-side traces definiëren met behulp van sp_trace-procedures. Plan deze scripts zo dat ze op specifieke tijdstippen of intervallen worden uitgevoerd.

PowerShell-automatisering maakt geavanceerde tracebeheerscenario's mogelijk. Schrijf PowerShell-scripts die traces aanmaken, hun status bewaken en verzamelde gegevens verwerken. Plan PowerShell-scripts via Taakplanner of SQL Server Middel.

SQL Server Agent-jobs bieden betrouwbare geplande uitvoering. Creëer jobs dietarTraceert aan het begin van monitoringperioden en stopt traceert nadat de gegevensverzameling is voltooid. Configureer taakmeldingen om beheerders te waarschuwen voor fouten.

8.5 Traces programmatisch analyseren

Lees tracebestanden met T-SQL met behulp van de functie fn_trace_gettable. Deze tabelwaardefunctie parseert tracebestanden en retourneert gebeurtenisgegevens als een resultaatset. Gebruik standaard T-SQL om deze gegevens te bevragen en aangepaste analyses uit te voeren.

Aangepaste analysescripts maken geautomatiseerde traceringsverwerking mogelijk. Schrijf query's die geaggregeerde statistieken berekenen, patronen identificeren of afwijkingen signaleren. Plan deze scripts zo dat ze automatisch worden uitgevoerd nadat de traceringsverzameling is voltooid.

Genereer rapporten door traceringsgegevens in tabellen te raadplegen. Maak weergaven die gebeurtenissen per periode, gebruiker of applicatie samenvoegen. Bouw rapportageoplossingen die regelmatig inzicht bieden in databaseactiviteit en -prestaties.

9. SQL Server Aanbevolen werkwijzen voor Profiler

9.1 Best practices voor prestaties

9.1.1 Trace-overhead minimaliseren

Selecteer alleen noodzakelijke gebeurtenissen om de trace-overhead te verminderen. Elk extra gebeurtenistype verhoogt de hoeveelheid gegevens die de trace-engine moet verwerken. Bekijk uw monitoringdoelstellingen en neem alleen gebeurtenissen op die direct relevant zijn voor die doelen.

Gebruik filters effectief om te voorkomen dat irrelevante gegevens worden vastgelegd. Filter op Databasenaam om systeemdatabases uit te sluiten. Filter op Duur om alleen langzame query's vast te leggen. Filter op Toepassingsnaam om u te concentreren op specifieke toepassingen. Correcte filtering vermindert de trace-overhead aanzienlijk.

Server-side versus client-side overwegingen hebben invloed op de prestaties. Server-side traces schrijven gegevens rechtstreeks naar schijf met minimale overhead. Client-side traces verzenden gebeurtenissen via het netwerk naar de Profiler-interface, wat zorgt voor extra latentie en bandbreedteverbruik. Gebruik server-side traces voor productiemonitoring.

9.1.2 Trace-opslag optimaliseren

Bestandsgroottebeheer voorkomt uitputting van de schijfruimte. Stel maximale bestandsgroottelimieten in die passen bij de beschikbare opslagruimte. Schakel bestandsrollover in om meerdere bestanden te maken in plaats van één bestand oneindig te laten groeien. Bewaak de schijfruimte tijdens de uitvoering van de trace.

Tabel- versus bestandsopslag brengt verschillende prestatie-afwegingen met zich mee. Bestandsopslag biedt betere prestaties tijdens trace-uitvoering omdat het de opslagengine omzeilt. Tabelopslag maakt T-SQL-query's op trace-gegevens mogelijk, maar verhoogt de schrijfoverhead. Kies het opslagtype op basis van uw analysevereisten.

9.2 Aanbevolen beveiligingspraktijken

Machtigingsbeheer bepaalt wie traces kan maken en uitvoeren. Verleen ALTER TRACE-rechten alleen aan vertrouwde gebruikers die traceermogelijkheden nodig hebben. Leden met de sysadmin-rol hebben onbeperkte traceertoegang. Controleer en controleer traceerrechten regelmatig.

Bescherming van gevoelige gegevens vereist een zorgvuldige traceconfiguratie. Vermijd het vastleggen van volledige querytekst bij het werken met gevoelige gegevens. Overweeg het filteren of versleutelen van trace-uitvoer met vertrouwelijke informatie. Bewaar tracebestanden op veilige locaties met de juiste toegangscontrole.

Beveiliging van traceerbestanden voorkomt ongeautoriseerde toegang tot vastgelegde gegevens. Stel bestandsmachtigingen in om de toegang tot traceerbestanden te beperken. Versleutel traceerbestanden als deze gevoelige informatie bevatten. Verwijder traceerbestanden na voltooiing van de analyse om het risico op blootstelling te minimaliseren.

9.3 Overwegingen met betrekking tot de productieomgeving

9.3.1 Wanneer Profiler in productie gebruiken

Risicobeoordeling bepaalt wanneer SQL Server Profiler is geschikt voor productiegebruik. Profiler introduceert meetbare overhead die toeneemt met de trace scope. Evalueer of de diagnoseostDe ic-waarde rechtvaardigt de prestatie-impact voordat productietraceringen worden uitgevoerd.

Configuraties met minimale impact maken veiligere productietracering mogelijk. Gebruik zeer selectieve filters om alleen kritieke gebeurtenissen vast te leggen. Stel drempelwaarden voor de duur in om snel uitgevoerde query's te negeren. Beperk de traceringsduur tot korte periodes tijdens probleemoplossingssessies. Configureer server-side traceringen om de clientoverhead te verminderen.

9.3.2 Alternatieven voor productiebewaking

Extended Events zorgt voor lagere overheadkosten voor productiemonitoring. Deze moderne technologie biedt betere prestaties en flexibiliteit dan SQL Server Profiler. Migreer monitoringoplossingen naar Extended Events voor langdurig gebruik in productie.

Query Store legt automatisch queryprestatiegegevens vast zonder handmatige traceconfiguratie. Schakel Query Store in op productiedatabases om statistieken over de uitvoering van query's in de loop van de tijd bij te houden. Query Store biedt most Prestatiebewakingsmogelijkheden zonder de overhead van tracering.

Dynamische beheerweergaven bieden eenvoudige monitoring voor specifieke scenario's. DMV's bieden actuele statusinformatie zonder historische gebeurtenissen vast te leggen. Vraag DMV's periodiek om de serverstatus te bewaken zonder de overhead van continue tracering.

9.4 Best practices voor tracebeheer

Naamgevingsconventies zorgen ervoor dat tracebestanden identificeerbaar en georganiseerd zijn. Neem de datum, tijd, servernaam en het doel op in de tracebestandsnamen. Gebruik consistente naamgevingspatronen voor alle traces om beheer en analyse te vergemakkelijken.

Documentatie registreert de traceconfiguratie en het doel ervan. Documenteer welke gebeurtenissen u hebt vastgelegd, waarom u de trace hebt gemaakt en wat u van de analyse hebt geleerd. Houd een logboek bij van de traces die op productiesystemen zijn uitgevoerd voor nalevings- en probleemoplossingsdoeleinden.

Bewaarbeleid voorkomt overmatige accumulatie van tracebestanden. Definieer hoe lang tracebestanden bewaard moeten blijven op basis van de bedrijfsvereisten en opslagcapaciteit. Automatiseer het verwijderen van oude tracebestanden om schijfruimte vrij te maken. Archiveer belangrijke tracebestanden naar langetermijnopslag voordat u ze verwijdert.

9.5 veelvoorkomende fouten die u moet vermijden

Overmatige tracering veroorzaakt overmatige prestatieoverhead en genereert onbeheersbare datavolumes. Vermijd het vastleggen van alle gebeurtenissen zonder filters.tarGebruik smalle, gerichte sporen en breid de scope alleen uit indien nodig. Meer data is niet altijd beter voor effectieve probleemoplossing.

Als u vergeet traces te stoppen, verspilt u resources en neemt de schijfruimte in beslag. Stop traces altijd wanneer de monitoring is voltooid. Stel limieten in voor de traceduur of maximale bestandsgroottes om onbeheerde traces te voorkomen. Controleer actieve traces regelmatig en stop inactieve of onnodige traces.

Het negeren van filteroptimalisatie leidt tot slechte prestaties en een lastige analyse. Investeer tijd in het configureren van effectieve filters voordat u begint.tarTraceringssporen. Test filters in ontwikkelomgevingen om te controleren of ze de verwachte gegevens vastleggen. Controleer en verfijn filters op basis van de vastgelegde resultaten.

10. Alternatieven voor SQL Server Profielmaker in 2025

10.1 Uitgebreide evenementen: de moderne vervanging

10.1.1 Wat zijn uitgebreide gebeurtenissen?

Uitgebreide evenementen vertegenwoordigen SQL Server's moderne architectuur voor gebeurtenisafhandeling. Microsoft heeft dit systeem specifiek ontworpen om SQL Server Beperkingen van Profiler, waaronder prestatieoverhead en configuratieflexibiliteit. Extended Events biedt uitgebreide monitoringmogelijkheden met een aanzienlijk lager resourceverbruik.

Architectuur en voordelen onderscheiden Extended Events van oudere traceringstechnologieën. De event engine integreert diepgaand in SQL ServerDe kernarchitectuur van 's, waarbij gebeurtenissen worden vastgelegd met minimale overhead. Asynchrone gebeurtenisbuffering voorkomt dat monitoring databasebewerkingen blokkeert. Flexibel tarMet de opties zijn diverse uitvoerconfiguraties mogelijk.

Prestatievoordelen maken Extended Events ideaal voor productiemonitoring. Benchmarks tonen aan dat Extended Events 50-90% minder overhead met zich meebrengt dan vergelijkbare systemen. SQL Server Profiler-traceringen. De architectuur schaalt beter met hoge gebeurtenisvolumes en ondersteunt meer gelijktijdige monitoringsessies.

10.1.2 Migreren van Profiler naar Extended Events

Gebeurtenistoewijzing vertaalt SQL Server Profilergebeurtenissen naar equivalenten van uitgebreide gebeurtenissen. Most Profilergebeurtenissen hebben overeenkomstige Extended Events-tegenhangers. Microsoft biedt documentatie over het koppelen van gemeenschappelijke gebeurtenissen tussen de twee systemen.

Het aanmaken van sessies in Extended Events vereist het leren van nieuwe syntaxis en concepten. Definieer eventsessies met behulp van T-SQL CREATE EVENT SESSION-instructies of de grafische interface van Extended Events in Management Studio. Sessies specificeren welke events moeten worden vastgelegd, welke gegevens moeten worden verzameld en waar de resultaten moeten worden opgeslagen.

10.1.3 Uitgebreide gebeurtenishulpmiddelen en interfaces

De SSMS Extended Events-gebruikersinterface biedt grafisch sessiebeheer. U krijgt toegang tot Extended Events via de map Beheer in Object Explorer. U kunt gebeurtenissessies aanmaken, wijzigen en bewaken via de interface. U kunt vastgelegde gegevens bekijken in grafische formaten, zoals rasters en grafieken.

T-SQL-sessiebeheer maakt programmatische controle over uitgebreide gebeurtenissen mogelijk. Schrijf CREATE EVENT SESSION-instructies om sessies in code te definiëren. Gebruik ALTER EVENT SESSION om actieve sessies te wijzigen. Verbreek sessies met DROP EVENT SESSION. Deze aanpak maakt geautomatiseerde monitoringoplossingen mogelijk.

10.2 SQL Server QueryStore

Query Store legt automatisch queryprestatiegegevens vast voor databases waar deze functie is ingeschakeld. Deze functie volgt queryplannen, uitvoeringsstatistieken en prestatiegegevens in de loop van de tijd zonder handmatige traceconfiguratie. Query Store bewaart historische gegevens, waardoor trendanalyse en regressiedetectie mogelijk zijn.

Realtime queryprestatiebewaking via Query Store brengt het huidige systeemgedrag in kaart. Bekijk recent uitgevoerde query's, hun uitvoeringsplannen en resourceverbruik. Identificeer query's met een toenemende duur of veranderende uitvoeringsplannen die op problemen kunnen wijzen.

Historische queryanalyse maakt vergelijking over tijdsperioden mogelijk. Query Store bewaart prestatiegegevens gedurende configureerbare bewaartermijnen. Vergelijk huidige prestaties met historische basislijnen om regressies te identificeren. Analyseer prestatietrends om toekomstige capaciteitsbehoeften te voorspellen.

Gebruik Query Store wanneer u automatische, altijd actieve prestatiebewaking nodig hebt. Schakel Query Store in op productiedatabases om querygedrag continu te volgen. Query Store vormt een aanvulling op trace-gebaseerde probleemoplossing door historische context te bieden voor prestatieproblemen.

10.3 Dynamische beheerweergaven (DMV's)

Lichtgewicht monitoring via DMV's biedt actuele informatie over de staat zonder historische gebeurtenissen vast te leggen. DMV's leggen interne SQL Server Statistieken en metadata via querybare weergaven. Vraag DMV's op met behulp van standaard T-SQL SELECT-instructies.

Veelvoorkomende DMV-query's voor prestatiebewaking zijn onder andere sys.dm_exec_query_stats voor queryprestatiestatistieken, sys.dm_exec_requests voor verzoeken die momenteel worden uitgevoerd en sys.dm_os_wait_stats voor wachtstatistieken. Deze weergaven bieden inzicht op een specifiek moment in de serverstatus en -activiteit.

DMV's vullen trace-gebaseerde monitoring aan door realtime statistieken te bieden. Gebruik DMV's voor snelle gezondheidscontroles en analyses van de huidige status. Combineer DMV-query's met trace-gegevens voor uitgebreide probleemoplossingsmethoden.

10.4 Monitoringtools van derden

Commerciële alternatieven bieden verbeterde monitoringmogelijkheden die verder gaan dan SQL ServerIngebouwde tools. Producten van leveranciers zoals SolarWinds, Redgate en Quest bieden uitgebreide monitoring-, waarschuwings- en analysefuncties. Deze tools combineren vaak meerdere gegevensbronnen, waaronder traces, DMV's en prestatietellers.

Vergelijking van functies laat de sterke punten van verschillende monitoringbenaderingen zien. Tools van derden bieden superieure gebruikersinterfaces, geautomatiseerde waarschuwingen en historische trendanalyse. SQL ServerDe ingebouwde tools van bieden geen extra kostenost en diepere integratie. Evalueer tools op basis van uw specifieke vereisten en budget.

10.5 Het kiezen van het juiste gereedschap voor uw behoeften

Een beslissingsmatrix helpt bij het selecteren van geschikte monitoringtools. Voor ad-hoc probleemoplossing, SQL Server Profiler blijft toegankelijk en effectief. Voor productiemonitoring zorgen Extended Events of Query Store voor betere prestaties. Voor uitgebreide enterprisemonitoring bieden oplossingen van derden de most kenmerken.

Criteria voor toolselectie zijn onder andere prestatieoverhead, gebruiksgemak, vereisten voor gegevensretentie en budgetbeperkingen. Houd bij het selecteren van tools rekening met de expertise van uw team. Bekende tools maken snellere probleemoplossing mogelijk, zelfs als nieuwere alternatieven betere functies bieden.

Combineer meerdere tools voor uitgebreide monitoringstrategieën. Gebruik Query Store voor continue prestatietracking, Extended Events voor het onderzoeken van specifieke problemen en DMV's voor realtime statuscontroles. Deze gelaagde aanpak biedt robuuste monitoring zonder overmatige overhead.

11. Probleemoplossing SQL Server Problemen met de profiler

11.1 Veelvoorkomende verbindingsproblemen

Authenticatiefouten voorkomen SQL Server Profiler van verbinding maken met tarservers ophalen. Controleer of u de juiste inloggegevens gebruikt voor de geselecteerde authenticatiemethode. Windows-verificatie vereist dat uw Windows-account de juiste gegevens heeft. SQL Server machtigingen. SQL Server Voor authenticatie zijn geldige SQL-inloggegevens vereist.

Problemen met de netwerkconnectiviteit manifesteren zich als time-outfouten of verbindingsfouten. Controleer SQL Server staat externe verbindingen toe in de configuratie. Controleer of de firewallinstellingen verkeer toestaan ​​op SQL Server's poort. Test de basisconnectiviteit met ping en telnet voordat u problemen met Profiler oplost.

11.2 Prestatieproblemen met Profiler

Trage trace-uitvoering duidt op overmatige overhead door de trace-configuratie. Controleer geselecteerde gebeurtenissen en verwijder onnodige. Voeg filters toe om het aantal vastgelegde gebeurtenissen te verminderen. Overweeg het gebruik van server-side traces om de verwerkingsbelasting aan de clientzijde te verminderen.

Een hoog grondstoffenverbruik heeft gevolgen voor zowel SQL Server en de Profiler-client. Controleer de CPU en het geheugen van de server tijdens de uitvoering van de trace. Als de serverbronnen beperkt zijn, verhoog dan de filterselectiviteit of verkort de opnameduur. Bij problemen met de clientbronnen moeten andere applicaties worden gesloten of moet de clienthardware worden geüpgraded.

11.3 Problemen met traceerbestanden en -tabellen

Corrupte tracebestanden verhinderen het openen in SQL Server Profiler. Corruptie is meestal het gevolg van een onzorgvuldige beëindiging van de trace of schijffouten. Probeer het bestand te openen in een teksteditor om te controleren of het niet volledig beschadigd is. Soms kunnen gedeeltelijke gegevens worden hersteld door ze te importeren in een tabel met fn_trace_gettable.

Problemen met de toegang tot de tabel doen zich voor bij het proberen om sporen te laden van SQL Server tabellen. Controleer of u SELECT-rechten hebt voor de tracetabel. Controleer of de tabel niet is verwijderd of hernoemd. Zorg ervoor dat u verbinding maakt met de juiste server en database die de tracetabel bevat.

11.4 Ontbrekende gebeurtenissen of onvolledige gegevens

Een onjuiste filterconfiguratie zorgt ervoor dat traces verwachte gebeurtenissen missen. Controleer de filtercriteria zorgvuldig om er zeker van te zijn dat ze geen gewenste gebeurtenissen uitsluiten. Test filters door korte traces uit te voeren en te controleren of de vastgelegde gegevens aan de verwachtingen voldoen. Filters verwijderen temporarom te bepalen of zij het probleem veroorzaken.

Bufferoverloop treedt op wanneer SQL Server Kan tracegegevens niet snel genoeg wegschrijven om de gebeurtenisgeneratie bij te houden. Dit gebeurt meestal met ongefilterde traces tijdens hoge activiteit. Symptomen zijn onder andere ontbrekende gebeurtenissen of de waarschuwing "Gebeurtenissen zijn niet vastgelegd". Los dit op door filters toe te voegen om het gebeurtenisvolume te verminderen of de schijf-I/O-prestaties van de tracebestandslocatie te verbeteren.

11.5 Profiler crasht en fouten

Veelvoorkomende foutmeldingen zijn onder andere "Kan trace niet aanmaken", wat wijst op problemen met machtigingen of resourcebeperkingen. "Trace is gestopt"-meldingen duiden op fouten in de server-side trace, mogelijk veroorzaakt door een volle schijf. Fouten met "Ongeldige tracedefinitie" duiden op configuratieproblemen.

Oplossingsstrategieën zijn afhankelijk van de specifieke fout. Toestemmingsfouten vereisen het verlenen van ALTER TRACE-rechten aan de gebruiker. Resourcefouten vereisen vrijgemaakte schijfruimte of geheugen. Configuratiefouten vereisen het controleren en corrigeren van trace-instellingen. Restart SQL Server Profiler als deze niet meer reageert.

12. Praktisch SQL Server Profiler-scenario's en voorbeelden

12.1 Scenario 1: De langzaamste query's in uw database identificeren

Deze walkthrough laat zien hoe u langzame query's kunt vastleggen en analyseren.

Configureer de trace door de volgende stappen te volgen:

  1. Lancering SQL Server Profiler en maak verbinding met uw tarserver ophalen.
  2. Klik op het tabblad Bestand -> Nieuw spoor.
  3. Voer 'Slow Query Analysis' in het veld Spoornaam veld.
  4. Kies TSQL aan de hand van de Gebruik het sjabloon dropdown.
  5. Klik op het tabblad Evenementenselectie .
  6. Klik op het tabblad Kolomfilters.
  7. Kies Duur en voer 1000000 in Groter dan of gelijk aan.
  8. Kies Database naam en voer uw databasenaam in Like.
  9. Klik op het tabblad OK om filters te sluiten.
  10. Enable Opslaan in bestand en geef een bestandspad op.
  11. Klik op het tabblad lopen vervolgens ptarniet vastleggen.

Voer de trace uit tijdens piekuren gedurende ten minste 30 minuten om een ​​representatieve werklast vast te leggen. Stop de trace na voldoende gegevensverzameling.

Analyseer de resultaten volgens dit proces:

  1. Klik op de knop Duur kolomkop om te sorteren op uitvoeringstijd.
  2. Identificeer de 10 langstlopende zoekopdrachten.
  3. Onderzoek voor elke vraag de Tekstgegevens kolom.
  4. Kopieer de querytekst en plak deze in Management Studio.
  5. Gebruik Geschatte uitvoeringsplan weergeven om de query te analyseren.
  6. Let op tabelscans, ontbrekende indexen of inefficiënte joins.
  7. Beoordeling CPU, leesten schrijft kolommen voor patronen van bronverbruik.

12.2 Scenario 2: Een deadlock-probleem debuggen

Dit voorbeeld laat zien hoe u deadlocks kunt vastleggen en analyseren.

Configureer deadlockbewaking met behulp van de volgende stappen:

  1. Maak een nieuw spoor met de naam “Deadlock Investigation”.
  2. Klik op het tabblad Evenementenselectie .
  3. Klik op het tabblad Toon alle evenementen.
  4. Uitvouwen Sloten categorie.
  5. Kies Vergrendeling: Deadlock.
  6. Kies Slot: Deadlock Chain.
  7. Uitvouwen Fouten en waarschuwingen categorie.
  8. Kies Rapport geblokkeerd proces.
  9. Verzekeren Tekstgegevens kolom is geselecteerd.
  10. Klik op het tabblad lopen vervolgens ptart-bewaking.

Wanneer er tijdens de trace-uitvoering een deadlock optreedt, wordt de gebeurtenis Lock:Deadlock in het trace-raster weergegeven.

Interpreteer deadlockinformatie met behulp van de volgende stappen:

  1. Klik op de knop Vergrendeling: Deadlock gebeurtenissenrij.
  2. Bekijk de Tekstgegevens kolom in het onderste paneel.
  3. Kopieer de XML-inhoud van TextData.
  4. Open Management Studio en maak een nieuw queryvenster.
  5. Plak de XML in het queryvenster.
  6. Sla het bestand op met de extensie .xdl.
  7. Open het .xdl-bestand in Management Studio om de deadlockgrafiek te bekijken.
  8. De grafiek toont de betrokken processen, de geblokkeerde bronnen en het gekozen slachtoffer.
  9. Bekijk de query's van beide processen om het conflict te begrijpen.

Oplossingsstappen omvatten doorgaans het opnieuw ordenen van bewerkingen in applicatiecode om toegang te krijgen tot bronnen in een consistente volgorde, het verkleinen van de transactieomvang of het implementeren van geschikte vergrendelingshints.

12.3 Scenario 3: Alle query's van een specifieke applicatie volgen

Dit scenario demonstreert toepassingsspecifieke querybewaking.

Configureer applicatiespecifieke tracering met behulp van de volgende stappen:

  1. Maak een nieuwe trace met de naam “Application Query Tracking”.
  2. Selecteer het tabblad Standaard sjabloon.
  3. Klik op het tabblad Evenementenselectie .
  4. Klik op het tabblad Kolomfilters.
  5. Kies Naam van de toepassing.
  6. Voer de naam van uw applicatie in het Like veld.
  7. Als uw toepassing gebruikmaakt van connection pooling, hebt u mogelijk jokertekens nodig.
  8. Klik op het tabblad OK om het filter toe te passen.
  9. Enable Opslaan in tabel voor eenvoudiger zoeken.
  10. Klik op het tabblad lopen vervolgens ptarniet vastleggen.

Querypatroonanalyse laat zien hoe uw applicatie samenwerkt met SQL Server:

  1. Stop het traceren nadat u gegevens hebt verzameld.
  2. Open Management Studio en maak verbinding met de server met de traceertabel.
  3. Raadpleeg de traceringstabel om patronen te analyseren.
  4. Tel de query's per type om de operationele mix te bekijken.
  5. Identificeer most vaak uitgevoerde zoekopdrachten.
  6. Zoek naar query's die gecached of geoptimaliseerd kunnen worden.
  7. Controleer op herhaalde, identieke query's die duiden op ontbrekende connection pooling.

12.4 Scenario 4: Gegevenstoegang controleren voor naleving

Dit voorbeeld toont het maken van een beveiligingscontrolepad.

Configureer beveiligingscontroles met behulp van de volgende stappen:

  1. Maak een nieuwe trace met de naam “Security Audit Trail”.
  2. Klik op het tabblad Evenementenselectie .
  3. Klik op het tabblad Toon alle evenementen.
  4. Uitvouwen Security Audit categorie.
  5. Kies Audit-inlog, Audit-uitloggen, Audit-aanmelding mislukt.
  6. Kies Toegang tot auditdatabaseobjecten.
  7. Uitvouwen TSQL categorie.
  8. Kies SQL:BatchVoltooid.
  9. Klik op het tabblad Kolomfilters.
  10. Filteren op ObjectName om specifieke gevoelige tabellen te bewaken.
  11. Enable Opslaan in tabel voor langdurige retentie.
  12. Schakel server-side tracering in voor onbeheerde bewerkingen.
  13. Klik op het tabblad lopen vervolgens ptart auditing.

Genereer auditrapporten door de traceringstabel te raadplegen:

  1. Maak query's die de toegang per gebruiker en tijdsperiode samenvatten.
  2. Identificeer ongebruikelijke toegangspatronen of activiteiten buiten kantoortijden.
  3. Mislukte inlogpogingen documenteren voor beveiligingscontrole.
  4. Exporteer auditgegevens naar rapportagesystemen voor nalevingsdocumentatie.
  5. Archiveer voltooide audittraceringen volgens het bewaarbeleid.

12.5 Scenario 5: Een werklast vastleggen voor prestatietesten

Dit scenario illustreert het vastleggen van werklasten voor testdoeleinden.

Maak replay-ready traces met behulp van de volgende stappen:

  1. Maak een nieuwe trace met de naam “Workload Capture”.
  2. Kies TSQL_Replay uit de vervolgkeuzelijst met sjablonen.
  3. Deze sjabloon bevat alle vereiste gebeurtenissen en kolommen voor herhaling.
  4. Klik op het tabblad Evenementenselectie .
  5. Pas filters toe als u specifieke werklastsegmenten wilt vastleggen.
  6. Enable Opslaan in bestand.
  7. Geef een bestandspad op met voldoende schijfruimte.
  8. Stel geschikte limieten voor de bestandsgrootte in en schakel rollover in.
  9. Klik op het tabblad lopen vervolgens ptarniet vastleggen.

Vastleggen tijdens representatieve bedrijfsactiviteiten. Voor een uitgebreide vastlegging van de werklast voert u de trace enkele uren uit, waarbij u verschillende activiteitenpatronen bestrijkt. Stop de trace nadat u voldoende gegevens hebt verzameld.

Werklastanalyse onthult patronen in systeemgedrag:

  1. Open het vastgelegde tracebestand in SQL Server Profiler.
  2. Controleer de verdeling van gebeurtenissen per type en tijd.
  3. Bereken totale gegevens over het verbruik van hulpbronnen.
  4. Identificeer piekperiodes en knelpunten in de hulpbronnen.
  5. Gebruik de trace voor Database Engine Tuning Advisor-analyse.
  6. Voer de trace opnieuw uit op testsystemen om wijzigingen te valideren.

13. Detectie van databasecorruptie met SQL Server Profiler

13.1 Gebruik SQL Server Profiler voor vroege waarschuwingssignalen voor corruptie

Corruptie van de database is een van de meest voorkomende problemen.ost ernstige bedreigingen voor de gegevensintegriteit en de betrouwbaarheid van het systeem. Terwijl SQL Server Profiler is geen specifieke tool voor het opsporen van corruptie, maar kan wel kritieke waarschuwingssignalen opvangen die wijzen op mogelijke corruptieproblemen die onmiddellijk onderzoek vereisen.

13.2 Kritieke foutgebeurtenissen die wijzen op mogelijke corruptie

  • Ernstigheidsgraad 24-fouten (823, 824, 825): Hardware- en mediastoringen.
  • Fout 605: mislukte pogingen om pagina's op te halen
  • Fout 8928 en 8929: Objectbeschadiging

13.3 Verdachte databasegedragingen en waarschuwingspatronen

  • Herhaalde query-time-outs op specifieke objecten
  • Toegangsovertredingen en applicatiecrashes
  • Ongebruikelijke foutclustering

13.4 DBCC CHECKDB uitvoeren op basis van de bevindingen van de profiler

If SQL Server Als de Profiler verdachte fouten vindt, kunt u DBCC CHECKDB gebruiken om de database volledig te controleren. Voer vervolgens een reparatie uit als de fouten worden bevestigd. We hebben geschreven een uitgebreide handleiding over hoe u deze taken uitvoert.

Als DBCC CHECKDB de database niet kan herstellen, zijn de corrupties ernstig. In dat geval kunt u uw toevlucht nemen tot een SQL-hersteltool van derden.

14. Veelgestelde vragen

Vraag: Is SQL Server Profiler wordt nog steeds ondersteund in SQL Server 2022?

A: Ja, SQL Server Profiler is nog steeds inbegrepen SQL Server 2022 en SQL Server Management Studio, ondanks dat het al sinds 2004 is afgeschaft SQL Server 2016. Microsoft blijft de tool meeleveren met de huidige versies, maar raadt aan om te migreren naar Extended Events voor nieuwe monitoringimplementaties. De tool blijft functioneel en wordt veel gebruikt voor probleemoplossing en ad-hocanalyse.

Vraag: Wat is het verschil tussen: SQL Server Profiler en SQL Trace?

A: SQL Server Profiler is de grafische gebruikersinterfacetool die verbinding maakt met de SQL Trace-engine die binnen SQL ServerSQL Trace is de onderliggende technologie die gebeurtenissen daadwerkelijk vastlegt. U kunt traces maken met behulp van de interface van Profiler of rechtstreeks via opgeslagen T-SQL-procedures zoals sp_trace_create. Profiler biedt eenvoudigere configuratie, terwijl T-SQL-traces meer automatiseringsmogelijkheden bieden.

V: Hoeveel prestatieoverhead brengt dit met zich mee? SQL Server Profiler toevoegen?

A: De impact op de prestaties varieert afhankelijk van de traceconfiguratie. Een goed gefilterde trace die alleen specifieke gebeurtenissen vastlegt, kan 1-5% overhead toevoegen. Slecht geconfigureerde traces zonder filters kunnen 20-50% of meer overhead toevoegen, vooral op drukke systemen. Server-side traces hebben een lagere impact dan client-side traces. Gebruik altijd filters om het aantal gebeurtenissen te minimaliseren en test traces eerst in niet-productieomgevingen.

V: Mag ik rennen? SQL Server Profiler op productieservers?

A: Je kunt rennen SQL Server Profiler op productieservers, maar wees voorzichtig. Gebruik zeer selectieve filters, beperk de traceduur en geef de voorkeur aan server-side traces om de impact te minimaliseren. Voer productietraces indien mogelijk uit tijdens periodes met weinig activiteit. Overweeg voor continue productiemonitoring Extended Events of Query Store, omdat deze minder overhead bieden.

V: Welke machtigingen heb ik nodig om te gebruiken? SQL Server Profielmaker?

A: U hebt ALTER TRACE-rechten nodig om traces te maken en uit te voeren. Leden van de vaste serverrol sysadmin hebben automatisch deze rechten. Geef niet-sysadmin-gebruikers expliciet ALTER TRACE-rechten. Daarnaast hebt u de juiste rechten nodig om tracegegevens op te slaan in bestanden of tabellen, afhankelijk van uw configuratie.

V: Waarom kan ik niet alle gebeurtenissen in mijn trace zien?

A: Ontbrekende gebeurtenissen zijn meestal het gevolg van te restrictieve filters of een bufferoverloop. Controleer uw filterconfiguratie om er zeker van te zijn dat deze geen gewenste gebeurtenissen uitsluit. Een bufferoverloop treedt op wanneer SQL Server Kan gebeurtenissen niet snel genoeg wegschrijven, meestal met ongefilterde traces op drukke systemen. Voeg filters toe om het aantal gebeurtenissen te verkleinen of de I/O-prestaties van de schijf te verbeteren. Controleer op foutmeldingen die aangeven dat gebeurtenissen niet zijn vastgelegd.

V: Hoe kan ik deadlock-informatie vastleggen met SQL Server Profielmaker?

A: Maak een trace met de Lock:Deadlock- en Lock:Deadlock Chain-gebeurtenissen uit de categorie Locks. Zorg ervoor dat de kolom TextData is geselecteerd, aangezien deze de XML van de deadlock-grafiek bevat. Wanneer er een deadlock optreedt, kopieer dan de XML uit de kolom TextData, sla deze op met de extensie .xdl en open deze in SQL Server Management Studio om het grafische deadlockdiagram te bekijken.

V: Wat is het verschil tussen het opslaan van traces in bestanden en in tabellen?

A: Bestanden bieden betere prestaties tijdens trace-uitvoering omdat ze de SQL Server Opslagengine. Bestandstraceringen schrijven gegevens rechtstreeks naar schijf met minimale overhead. Tabeltraceringen schrijven via de opslagengine, wat overhead toevoegt maar directe T-SQL-query's op tracegegevens mogelijk maakt. Gebruik bestanden voor prestatiegevoelige scenario's en tabellen wanneer u gegevens direct tijdens of na het vastleggen moet opvragen.

V: Kan ik automatiseren SQL Server Profiler trace verzameling?

A: Ja, automatiseer het verzamelen van traces met behulp van server-side traces die zijn gemaakt met T-SQL stored procedures. Schrijf scripts met behulp van sp_trace_create en gerelateerde procedures en plan ze vervolgens in via SQL Server Agenttaken. Deze aanpak maakt onbeheerde tracering volgens specifieke schema's mogelijk. PowerShell-scripts bieden een andere automatiseringsoptie voor complexere scenario's.

V: Hoe lang moet ik een trace uitvoeren?

A: De traceduur hangt af van uw doelstellingen. Om specifieke problemen op te lossen, voert u traces uit terwijl u het probleem reproduceert, doorgaans 5-30 minuten. Voor prestatieanalyse registreert u minimaal één uur tijdens piekmomenten. Voor werklastanalyse of capaciteitsplanning registreert u meerdere uren verspreid over verschillende tijdsperioden. Stop traces altijd wanneer de monitoring is voltooid om resources vrij te maken.

V: Wat moet ik doen als mijn tracebestand te groot wordt?

A: Schakel bestandrollover in de trace-eigenschappen in om meerdere kleinere bestanden te maken in plaats van één groot bestand. Stel een maximale bestandsgrootte in die past bij uw schijfruimte en analysebehoeften. Gebruik filters om het volume van vastgelegde gebeurtenissen te verkleinen. Overweeg bij grote traces om gegevens in segmenten te analyseren in plaats van de volledige trace in één keer te laden. Archiveer of verwijder oude tracebestanden regelmatig om schijfruimte te besparen.

V: Hoe vind ik de query's die een hoog CPU-gebruik veroorzaken?

A: Maak een trace met SQL:BatchCompleted- en RPC:Completed-gebeurtenissen. Voeg de kolommen CPU, Duur en TextData toe. Filter op Duur om alleen query's te registreren die een drempelwaarde overschrijden, bijvoorbeeld 1000 milliseconden. Sorteer na het verzamelen van de gegevens in aflopende volgorde op de CPU-kolom. De query's bovenaan verbruiken de most processortijd. Onderzoek deze query's op optimalisatiemogelijkheden, zoals ontbrekende indexen of inefficiënte logica.

Vraag: Can SQL Server Profiler capture query-uitvoeringsplannen?

A: SQL Server Profiler kan informatie over het uitvoeringsplan vastleggen via de Showplan XML-gebeurtenissen in de categorie Prestaties. Selecteer Showplan XML- of Showplan XML Statistics Profile-gebeurtenissen om volledige uitvoeringsplannen vast te leggen. De kolom Tekstgegevens bevat de XML-plangegevens. Voor routinematige analyse van het uitvoeringsplan is het echter mogelijk om: SQL Server De grafische uitvoeringsplanfuncties van Management Studio en Query Store bieden eenvoudigere alternatieven.

V: Wat is de beste sjabloon om te gebruiken?tart voor algemene monitoring?

A: Het standaardsjabloon biedt een goede starMeetpunt voor algemene monitoring. Het omvat veelvoorkomende query-uitvoeringsgebeurtenissen, opgeslagen procedure-aanroepen en foutregistratie met gebalanceerde overhead. Gebruik de TSQL-sjabloon voor monitoring met een lagere impact, gericht op queryprestaties. Pas sjablonen aan op basis van uw specifieke behoeften door filters toe te voegen en de gebeurtenisselectie aan te passen nadat u de basisbeginselen hebt begrepen.

V: Hoe traceer ik alleen een specifieke applicatie of gebruiker?

A: Gebruik kolomfilters om specifieke applicaties of gebruikers te isoleren. Filter voor applicaties op de kolom ApplicationName met de naam die is opgegeven in uw verbindingsreeks. Filter voor gebruikers op de kolom LoginName met de SQL Server login of Windows-accountnaam. Combineer meerdere filters om de focus verder te verfijnen, bijvoorbeeld door te filteren op zowel ApplicationName als DatabaseName om de activiteit van één applicatie in een specifieke database te monitoren.

15. Conclusie en volgende stappen

15.1 belangrijke afhaalrestaurants

SQL Server Profiler blijft een waardevolle tool voor ad-hoc databaseprobleemoplossing, ondanks zijn verouderde status. De eenvoudige interface en uitgebreide event capture maken het ideaal voor snelle diagnose.ostic-sessies wanneer u direct resultaat nodig hebt. Gebruik Profiler voor het oplossen van specifieke problemen, het analyseren van applicatiegedrag en het uitvoeren van beveiligingsaudits.

Aanbevolen werkwijzen zijn onder andere het agressief gebruiken van filters om de prestatie-impact te minimaliseren, het prefereren van server-side traces voor productieomgevingen en het beperken van de traceduur tot de noodzakelijke perioden. Selecteer alleen essentiële gebeurtenissen en kolommen om de overhead te verminderen. Sla traces op in bestanden in plaats van tabellen voor betere prestaties tijdens het vastleggen.

15.2 Vooruitgaan: moderne tools omarmen

Overgang van SQL Server Profiler naar Extended Events voor langetermijnmonitoringoplossingen. Hoewel Profiler functioneel blijft, bereidt het leren van Extended Events u voor op de toekomst. SQL Server versies. Starmet eenvoudige Extended Events-sessies die uw algemene Profiler-traceringen repliceren.

Schakel Query Store in op productiedatabases voor automatische prestatiebewaking zonder handmatige traceconfiguratie. Query Store registreert continu queryplannen en uitvoeringsstatistieken en biedt basisgegevens voor prestatieanalyse. Combineer Query Store met tarUitgebreide gebeurtenissensessies voor uitgebreide monitoring.

15.3 Aanvullende bronnen

De volgende hulpmiddelen zullen u helpen uw kennis te verdiepen SQL Server Kennis van profilers en op de hoogte blijven van best practices voor monitoring:

Officiële Microsoft-documentatie

Gemeentelijke middelen

  • SQL Server Centraal – Artikelen, forums en scripts voor databaseprofessionals
  • Stack Overflow SQL Server Tag – Community Q&A voor specifieke vragen over probleemoplossing
  • Reddit r/SQLServer – Discussieforum voor SQL Server onderwerpen en advies
  • SQLServerCentral.com Forums – Actieve communitydiscussies over profilering en prestaties
  • MSDN SQL Server Forums – Microsoft-hostondersteuningsforums voor de onderwijsgemeenschap

Blogs en technische artikelen

  • SQL Server Prestatiemeter – Gerichte inhoud voor prestatiebewaking en -optimalisatie
  • Brent Ozar Unlimited Blog – Best practices voor prestatie-afstemming en monitoring
  • SQLSkills.com – Expertniveau SQL Server content van leiders uit de industrie
  • Microsoft SQL Server Blog – Officiële productupdates en aankondigingen van functies
  • Simpele praat – Praktisch SQL Server tutorials en casestudies

Training en certificering

  • Microsoft Leren – Gratis online trainingsmodules voor SQL Server
  • Microsoft-gecertificeerd: Azure Database Administrator Associate – Officieel certificeringspad
  • Pluralsight SQL Server Cursussen – Videotraining over profilering en prestatie-afstemming
  • LinkedIn Learning SQL Server Opleiding – Professionele ontwikkelingscursussen
  • Udemy SQL Server Prestatiecursussen – Praktische, praktische trainingsmogelijkheden

Boeken

  • SQL Server Query Performance Tuning – Uitgebreide gids voor prestatie-optimalisatie
  • Pro SQL Server Interne werking – Diepgaande duik in SQL Server architectuur
  • SQL Server Uitvoeringsplannen – Inzicht in query-optimalisatie
  • Deskundige prestatie-indexering voor SQL Server – Indexontwerp en -optimalisatie
  • SQL Server Geavanceerde probleemoplossing en prestatie-afstemming – Geavanceerde diagnoseostic-technieken

Hulpmiddelen en hulpprogramma's

  • SQL Server Beheerstudio – Primaire interface voor SQL Server Profiler
  • Azure Data Studio – Moderne cross-platform databasetool
  • sp_WhoIsActive – Populaire, door de community gemaakte monitoring-opslagprocedure
  • SQL Sentry Plan Explorer – Gratis tool voor analyse van uitvoeringsplannen
  • DBForge Studio – Derde partij SQL Server ontwikkelings- en beheertool

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 beheer van multi-terabyte databases, de implementatie van Always-On Availability Groups en de ontwikkeling van geautomatiseerde back-up- en herstelstrategieën voor bedrijfskritische bedrijfssystemen.

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.