Delen via


Gebeurtenistracering voor Windows-bestemming

Van toepassing op:SQL Server

Voordat u Event Tracing voor Windows (ETW) als doel gebruikt, raden we u aan een werkende kennis van ETW te hebben. ETW-tracering wordt gebruikt samen met Extended Events of als een gebruiker van Extended Events-gegevens. De volgende externe koppelingen bieden een uitgangspunt voor het verkrijgen van achtergrondinformatie over ETW:

Het ETW-doel is een singleton-target, hoewel het doel kan worden toegevoegd aan verschillende sessies. Als een gebeurtenis op veel sessies wordt gegenereerd, wordt de gebeurtenis slechts één keer doorgegeven aan het ETW-doel per gebeurtenis. De engine voor Extended Events is beperkt tot één instance per proces.

Belangrijk

Het ETW-doel werkt alleen als het opstartaccount van de SQL Server-service lid is van de groep Gebruikers van het prestatielogboek.

De configuratie van de gebeurtenissen die aanwezig zijn in een ETW-sessie wordt beheerd door het proces dat als host fungeert voor de engine voor uitgebreide gebeurtenissen. De engine bepaalt welke gebeurtenissen moeten worden gegenereerd en aan welke voorwaarden moet worden voldaan om een gebeurtenis te kunnen uitvoeren.

Na het binden aan een sessie met uitgebreide gebeurtenissen, die het ETW-doel voor de eerste keer tijdens de levensduur van een proces koppelt, opent het ETW-doel één ETW-sessie op de SQL Server-provider. Als er al een ETW-sessie bestaat, verkrijgt het ETW-doel een verwijzing naar de bestaande sessie. Deze ETW-sessie wordt gedeeld in alle SQL Server-exemplaren op een bepaalde computer. Deze ETW-sessie ontvangt alle gebeurtenissen van sessies met het ETW-doel.

Omdat ETW providers moeten worden ingeschakeld om gebeurtenissen te verwerken en naar de ETW door te geven, worden alle pakketten voor uitgebreide gebeurtenissen op de sessie ingeschakeld. Wanneer een gebeurtenis wordt geactiveerd, verzendt het ETW-doel de gebeurtenis naar de sessie waarop de provider voor de gebeurtenis is ingeschakeld.

Het ETW-doel ondersteunt synchrone publicatie van gebeurtenissen op de thread die de gebeurtenis genereert. Het ETW-doel biedt echter geen ondersteuning voor het publiceren van asynchrone gebeurtenissen.

Het ETW-doel biedt geen ondersteuning voor beheer van externe ETW-controllers, zoals Logman.exe. Als u ETW-traceringen wilt produceren, moet er een gebeurtenissessie worden gemaakt met het ETW-doel. Zie CREATE EVENT SESSION (Transact-SQL) voor meer informatie.

Opmerking

Als u het ETW-doel inschakelt, maakt u een ETW-sessie met de naam XE_DEFAULT_ETW_SESSION. Als er al een sessie met de naam XE_DEFAULT_ETW_SESSION bestaat, wordt deze gebruikt zonder de eigenschappen van de bestaande sessie te wijzigen. De XE_DEFAULT_ETW_SESSION wordt gedeeld tussen alle exemplaren van SQL Server. Nadat u de XE_DEFAULT_ETW_SESSION hebt gestart, moet u deze stoppen met behulp van een ETW-controller, zoals het hulpprogramma Logman. U kunt bijvoorbeeld de volgende opdracht uitvoeren bij de opdrachtprompt: logman stop XE_DEFAULT_ETW_SESSION -ets.

In de volgende tabel worden de beschikbare opties beschreven voor het configureren van het ETW-doel.

Optie Toegestane waarden Description
default_xe_session_name Een tekenreeks van maximaal 256 tekens. Deze waarde is optioneel. De naam van de Uitgebreide gebeurtenissen-sessie. Dit is standaard XE_DEFAULT_ETW_SESSION.
default_etw_session_logfile_path Een tekenreeks van maximaal 256 tekens. Deze waarde is optioneel. Het pad van het logboekbestand voor de Uitgebreide Gebeurtenissen-sessie. Dit is standaard %TEMP%\XEEtw.etl.
default_etw_session_logfile_size_mb Iedere ongetekende gehele getal. Deze waarde is optioneel. De grootte van het logboekbestand, in megabytes (MB), voor de sessie Uitgebreide gebeurtenissen. De standaardwaarde is 20 MB.
default_etw_session_buffer_size_kb Elk niet-ondertekend geheel getal. Deze waarde is optioneel. De buffergrootte in het geheugen, in kilobytes (KB), voor de sessie Uitgebreide gebeurtenissen. De standaardwaarde is 128 kB.
retries Elk niet-ondertekend geheel getal. Het aantal keren dat de gebeurtenis opnieuw moet worden gepubliceerd naar het ETW-subsysteem voordat de gebeurtenis wordt neergeschreven. De standaardwaarde is 0.

Het configureren van deze instellingen is optioneel. Het ETW-doel gebruikt standaardwaarden voor deze instellingen.

Het ETW-doel is verantwoordelijk voor:

  • De standaard-ETW-sessie maken.

  • Alle uitgebreide gebeurtenissenpakketten registreren bij ETW. Dit zorgt ervoor dat gebeurtenissen niet worden verwijderd door ETW.

  • De stroom van gebeurtenissen naar ETW beheren. Het ETW-doel maakt een ETW-gebeurtenis met uitgebreide gebeurtenissengegevens en verzendt deze naar de juiste ETW-sessie. Als de gebeurtenis groter is dan de buffergrootte, of gegevens niet in één ETW-gebeurtenis passen, splitst ETW de gebeurtenis in fragmenten.

  • Altijd de Extended Events-pakketten ingeschakeld houden.

De volgende standaardbestandslocaties worden gebruikt door ETW:

  • Het ETW-uitvoerbestand bevindt zich in %TEMP%\XEEtw.etl.

    Belangrijk

    Het bestandspad kan niet worden gewijzigd nadat de eerste sessie is gestart.

  • MOF-bestanden (Managed Object Format) bevinden zich in <uw installatiepad>\Microsoft SQL Server\Shared. Zie Managed Object Format op MSDN voor meer informatie.

Het doel toevoegen aan een sessie

Als u het ETW-doel wilt toevoegen aan een sessie met uitgebreide gebeurtenissen, moet u de volgende instructie opnemen wanneer u een gebeurtenissessie maakt of wijzigt:

ADD TARGET package0.etw_classic_sync_target

Zie Systeemactiviteit bewaken met uitgebreide gebeurtenissen voor meer informatie over een volledig voorbeeld dat laat zien hoe u het ETW-doel gebruikt, inclusief het weergeven van de gegevens.