Delen via


SQLdiag-hulpprogramma

van toepassing op:SQL Server-

Het hulpprogramma SQLdiag is een hulpprogramma voor diagnostische gegevens voor algemeen gebruik dat kan worden uitgevoerd als een consoletoepassing of als een service. U kunt SQLdiag gebruiken om logboeken en gegevensbestanden van SQL Server en andere typen servers te verzamelen en deze te gebruiken om uw servers in de loop van de tijd te bewaken of specifieke problemen met uw servers op te lossen. SQLdiag is bedoeld om het verzamelen van diagnostische gegevens voor microsoft-klantenservices te versnellen en te vereenvoudigen.

Opmerking

Dit hulpprogramma kan worden gewijzigd en toepassingen of scripts die afhankelijk zijn van de opdrachtregelargumenten of het gedrag ervan, werken mogelijk niet correct in toekomstige releases.

SQLdiag kan de volgende typen diagnostische gegevens verzamelen:

  • Windows-prestatielogboeken
  • Windows-gebeurtenislogboeken
  • SQL Server Profiler-traceringen
  • Blokkerende informatie voor SQL Server
  • Sql Server-configuratiegegevens

U kunt opgeven welke typen informatie u wilt dat SQLdiag verzamelt door het configuratiebestand SQLdiag.xml te bewerken, zoals beschreven in een volgende sectie.

Syntaxis

sqldiag
    { [ /? ] }
    |
    {
      [ /I configuration_file ]
      [ /O output_folder_path ]
      [ /P support_folder_path ]
      [ /N output_folder_management_option ]
      [ /M machine1 [ machine2 machineN ] | @machinelistfile ]
      [ /C file_compression_type ]
      [ /B [+]start_time ]
      [ /E [+]stop_time ]
      [ /A SQLdiag_application_name ]
      [ /T { tcp [ ,port ] | np | lpc } ]
      [ /Q ] [ /G ] [ /R ] [ /U ] [ /L ] [ /X ]
    }
    |
    { [ START | STOP | STOP_ABORT ] }
    |
    { [ START | STOP | STOP_ABORT ] /A SQLdiag_application_name }

Argumenten

/?

Geeft gebruiksgegevens weer.

/I configuratiebestand

Hiermee stelt u het configuratiebestand in dat SQLdiag moet gebruiken. Standaard is /I ingesteld op SQLdiag.xml.

/O output_folder_path

Hiermee wordt de SQLdiag-uitvoer omgeleid naar de opgegeven map. Als de /O optie niet is opgegeven, wordt SQLdiag-uitvoer geschreven naar een submap met de naam SQLDIAG onder de opstartmap SQLdiag . Als de SQLDIAG map niet bestaat, probeert SQLdiag deze te maken.

Opmerking

De locatie van de uitvoermap is relatief ten opzichte van de locatie van de ondersteuningsmap die kan worden opgegeven met /P. Als u een volledig andere locatie voor de uitvoermap wilt instellen, geeft u het volledige mappad op voor /O.

/P support_folder_path

Hiermee stelt u het pad naar de ondersteuningsmap in. /P Standaard is dit ingesteld op de map waarin het uitvoerbare SQLdiag-bestand zich bevindt. De ondersteuningsmap bevat SQLdiag-ondersteuningsbestanden , zoals het XML-configuratiebestand, Transact-SQL scripts en andere bestanden die het hulpprogramma gebruikt tijdens het verzamelen van diagnostische gegevens. Als u deze optie gebruikt om een alternatief pad naar ondersteuningsbestanden op te geven, kopieert SQLdiag automatisch de ondersteuningsbestanden die nodig zijn voor de opgegeven map als deze nog niet bestaan.

Als u de huidige map wilt instellen als het ondersteuningspad, geeft u %cd% op de opdrachtregel als volgt op:

sqldiag /P %cd%

output_folder_management_option

Hiermee stelt u in of SQLdiag de uitvoermap overschrijft of hernoemt wanneer deze wordt gestart. Beschikbare opties:

  • 1 = De uitvoermap overschrijven (standaard)
  • 2 = Wanneer SQLdiag wordt gestart, wordt de naam van de uitvoermap gewijzigd in SQLDIAG_00001, SQLDIAG_00002enzovoort. Nadat u de naam van de huidige uitvoermap hebt gewijzigd, schrijft SQLdiag uitvoer naar de standaarduitvoermap SQLDIAG.

SQLdiag voegt geen uitvoer toe aan de huidige uitvoermap wanneer deze wordt gestart. De standaarduitvoermap (optie 1) kan alleen worden overschreven of de map een andere naam geven (optie 2) en vervolgens wordt uitvoer naar de nieuwe standaarduitvoermap met de naam geschreven SQLDIAG.

/M machine1 [ machine2machineN ] | @machinelistfile

Hiermee overschrijft u de machines die zijn opgegeven in het configuratiebestand. Standaard is het configuratiebestand SQLdiag.xml, of wordt ingesteld met de parameter /I. Wanneer u meer dan één machine opgeeft, scheidt u elke computernaam met een spatie.

Met de optie @machinelistfile geeft u een naam voor het bestand met de lijst met machines op dat moet worden opgeslagen in het configuratiebestand.

/C file_compression_type

Hiermee stelt u het type bestandscompressie in dat wordt gebruikt voor de SQLdiag-uitvoermapbestanden . Beschikbare opties:

  • 0 = geen (standaard)
  • 1 = gebruikt NTFS-compressie

/B [+]start_time

Hiermee geeft u de datum en tijd op waarop diagnostische gegevens moeten worden verzameld in de volgende indeling: yyyyMMdd_HH:mm:ss

De tijd wordt opgegeven met een notatie van 24 uur. Bijvoorbeeld, 2:00 P.M. moet worden opgegeven als 14:00:00.

Gebruik + zonder de datum (alleen UU:mm:ss) om een tijd op te geven die relatief is ten opzichte van de huidige datum en tijd. Als u bijvoorbeeld opgeeft /B +02:00:00, wacht SQLdiag 2 uur voordat de gegevens worden verzameld.

Plaats geen spatie tussen + en de opgegeven start_time.

Als u een begintijd opgeeft die zich in het verleden bevindt, wijzigt SQLdiag de begindatum geforceerd zodat de begindatum en -tijd zich in de toekomst bevinden. Als u bijvoorbeeld /B 01:00:00 opgeeft en de huidige tijd is 08:00:00, dan wordt de begindatum door SQLdiag geforceerd gewijzigd, zodat de begindatum de volgende dag is.

SQLdiag gebruikt de lokale tijd op de computer waarop het hulpprogramma wordt uitgevoerd.

/E [+]stop_time

Hiermee geeft u de datum en tijd op om het verzamelen van diagnostische gegevens in de volgende indeling te stoppen: yyyyMMdd_HH:mm:ss

De tijd wordt opgegeven met een notatie van 24 uur. Bijvoorbeeld, 2:00 P.M. moet worden opgegeven als 14:00:00.

Gebruik + zonder de datum (alleen UU:mm:ss) om een tijd op te geven die ten opzichte van de begindatum en -tijd is. Als u bijvoorbeeld een begin- en eindtijd opgeeft met behulp van/B +02:00:00 /E +03:00:00, wacht SQLdiag 2 uur voordat deze begint met het verzamelen van gegevens, verzamelt u gegevens gedurende 3 uur voordat deze stopt en wordt afgesloten. Als /B niet is opgegeven, begint SQLdiag onmiddellijk met het verzamelen van diagnostische gegevens en eindigt op de door /E opgegeven datum en tijd.

Plaats geen spatie tussen + en de opgegeven start_time of end_time.

SQLdiag gebruikt de lokale tijd op de computer waarop het hulpprogramma wordt uitgevoerd.

/ A-SQLdiag_application_name

Hiermee kunt u meerdere exemplaren van het SQLdiag-hulpprogramma uitvoeren op hetzelfde SQL Server-exemplaar.

Elke SQLdiag_application_name identificeert een ander exemplaar van SQLdiag. Er bestaat geen relatie tussen een SQLdiag_application_name-exemplaar en de naam van een SQL Server-exemplaar.

SQLdiag_application_name kan worden gebruikt om een specifiek exemplaar van de SQLdiag-service te starten of te stoppen.

In dit voorbeeld, vervang <SQLdiag_application_name> door de juiste waarde voor SQLdiag_application_name:

sqldiag START /A <SQLdiag_application_name>

Het kan ook worden gebruikt met de /R optie om een specifiek exemplaar van SQLdiag als een service te registreren. Vervang in dit voorbeeld <SQLdiag_application_name> met de juiste waarde voor SQLdiag_application_name:

sqldiag /R /A <SQLdiag_application_name>

Opmerking

SQLdiag geeft automatisch voorvoegsels DIAG$ aan de exemplaarnaam die is opgegeven voor SQLdiag_application_name. Dit biedt een verstandige servicenaam als u SQLdiag als een service registreert.

/ T-protocol

Maakt verbinding met een exemplaar van SQL Server met behulp van een van de volgende protocolwaarden.

Protocol (en poort) Beschrijving
tcp [ ,port ] Transmission Control Protocol/Internet Protocol (TCP/IP). U kunt desgewenst een poortnummer opgeven voor de verbinding.
Np Benoemde pijpen. Standaard luistert de standaardinstantie van SQL Server op de benoemde pijp \\.\pipe\sql\query en \\.\pipe\MSSQL$<instancename>\sql\query voor een benoemde instantie. U kunt geen verbinding maken met een exemplaar van SQL Server met behulp van een alternatieve pijpnaam.
Lpc Oproep van lokale procedure. Dit protocol voor gedeeld geheugen is beschikbaar als de client verbinding maakt met een exemplaar van SQL Server op dezelfde computer.

/Q

Voert SQLdiag uit in de stille modus. /Q onderdrukt alle prompts, zoals wachtwoordprompts.

/G

Hiermee wordt SQLdiag uitgevoerd in de algemene modus. Wanneer /G is opgegeven, dwingt SQLdiag bij het opstarten geen SQL Server-connectiviteitscontroles af en controleert het niet of de gebruiker lid is van de vaste serverrol sysadmin. In plaats daarvan wordt SQLdiag uitgesteld naar Windows om te bepalen of een gebruiker over de juiste rechten beschikt om elke aangevraagde diagnose te verzamelen.

Als /G dit niet is opgegeven, controleert SQLdiag of de gebruiker lid is van de groep Windows-beheerders en verzamelt geen diagnostische gegevens van SQL Server als de gebruiker geen lid is van de groep Administrators .

/R

Registreert SQLdiag als een service. Eventuele opdrachtregelargumenten die worden opgegeven wanneer u SQLdiag als een service registreert, blijven behouden voor toekomstige uitvoeringen van de service.

Wanneer SQLdiag is geregistreerd als een service, is SQLDIAGde standaardservicenaam. U kunt de servicenaam wijzigen met behulp van het /A argument.

Gebruik het START opdrachtregelargument om de service te starten:

sqldiag START

U kunt ook de net start opdracht gebruiken om de service te starten:

net start SQLDIAG

/U

Registratie van SQLdiag als een service ongedaan maken.

Gebruik het /A argument ook als u de registratie van een benoemd SQLdiag-exemplaar ongedaan maakt .

/L

Hiermee wordt SQLdiag uitgevoerd in de continue modus wanneer een begin- of eindtijd ook wordt opgegeven met respectievelijk de /B of /E argumenten. SQLdiag wordt automatisch opnieuw opgestart nadat het verzamelen van diagnostische gegevens stopt vanwege een geplande afsluiting. Gebruik bijvoorbeeld de /E argumenten of de /X argumenten.

Opmerking

SQLdiag negeert het /L argument als een begin- of eindtijd niet is opgegeven met behulp van de /B argumenten en /E opdrachtregels.

Het gebruik /L impliceert niet dat de servicemodus wordt gebruikt. Als u SQLdiag wilt gebruiken /L als een service, geeft u deze op de opdrachtregel op wanneer u de service registreert.

/X

SQLdiag wordt uitgevoerd in de momentopnamemodus. SQLdiag maakt een momentopname van alle geconfigureerde diagnostische gegevens en wordt vervolgens automatisch afgesloten.

START | STOPPEN | STOP_AVBREEKEN

Hiermee start of stopt u de SQLdiag-service. STOP_ABORT dwingt de service om zo snel mogelijk af te sluiten zonder het verzamelen van de diagnostische gegevens die het op dat moment verzamelt, te voltooien.

Wanneer deze servicebeheerargumenten worden gebruikt, moeten ze het eerste argument zijn dat op de opdrachtregel wordt gebruikt. Voorbeeld:

sqldiag START

Alleen het /A argument, waarmee een benoemd exemplaar van SQLdiag wordt opgegeven, kan worden gebruikt met START, STOPof STOP_ABORT om een specifiek exemplaar van de SQLdiag-service te beheren. Vervang <SQLdiag_application_name> door de juiste waarde voor SQLdiag_application_name in dit voorbeeld.

sqldiag START /A <SQLdiag_application_name>

Beveiligingsvereisten

Tenzij SQLdiag wordt uitgevoerd in de algemene modus (door het /G opdrachtregelargument op te geven), moet de gebruiker die SQLdiag uitvoert lid zijn van de groep Windows-beheerders en een lid van de vaste serverrol SQL Server Sysadmin . SQLdiag maakt standaard verbinding met SQL Server met behulp van Windows-verificatie, maar biedt ook ondersteuning voor SQL Server-verificatie.

Prestatieoverwegingen

De prestatie-effecten van het uitvoeren van SQLdiag zijn afhankelijk van het type diagnostische gegevens dat u hebt geconfigureerd om te verzamelen. Als u bijvoorbeeld SQLdiag hebt geconfigureerd voor het verzamelen van traceringsgegevens van SQL Server Profiler, hoe meer gebeurtenisklassen u kiest om te traceren, hoe meer de prestaties van uw server worden beïnvloed.

De invloed van de prestaties van het uitvoeren van SQLdiag is ongeveer gelijk aan de som van de kosten voor het afzonderlijk verzamelen van de geconfigureerde diagnostische gegevens. Als u bijvoorbeeld een tracering met SQLdiag verzamelt, worden dezelfde prestatiekosten in rekening gebracht als bij het verzamelen ervan met SQL Server Profiler. De prestatie-impact van het gebruik van SQLdiag is te verwaarlozen.

Vereiste schijfruimte

Omdat SQLdiag verschillende soorten diagnostische gegevens kan verzamelen, varieert de vrije schijfruimte die nodig is om SQLdiag uit te voeren. De hoeveelheid verzamelde diagnostische gegevens is afhankelijk van de aard en het volume van de werkbelasting die door de server wordt verwerkt en kan variëren van een paar megabytes tot enkele gigabytes.

Configuratiebestanden

Bij het opstarten leest SQLdiag het configuratiebestand en de opdrachtregelargumenten die zijn opgegeven. U geeft de typen diagnostische gegevens op die SQLdiag in het configuratiebestand verzamelt. SQLdiag maakt standaard gebruik van het SQLdiag.xml configuratiebestand, dat wordt geëxtraheerd telkens wanneer het hulpprogramma wordt uitgevoerd en zich in de opstartmap van het hulpprogramma SQLdiag bevindt. Het configuratiebestand maakt gebruik van het XML-schema, SQLDiag_schema.xsd, dat ook wordt geëxtraheerd in de opstartmap van het hulpprogramma vanaf het uitvoerbare bestand telkens wanneer SQLdiag wordt uitgevoerd.

De configuratiebestanden bewerken

U kunt kopiëren en bewerken SQLdiag.xml om de typen diagnostische gegevens te wijzigen die door SQLdiag worden verzameld. Wanneer u het configuratiebestand bewerkt, gebruikt u altijd een XML-editor waarmee het configuratiebestand kan worden gevalideerd op basis van het XML-schema, zoals Management Studio. U mag niet rechtstreeks bewerken SQLdiag.xml . Maak in plaats daarvan een kopie van SQLdiag.xml en wijzig de naam ervan in een nieuwe bestandsnaam in dezelfde map. Bewerk vervolgens het nieuwe bestand en gebruik het /I argument om het door te geven aan SQLdiag.

Het configuratiebestand bewerken wanneer SQLdiag wordt uitgevoerd als een service

Als u SQLdiag al als een service hebt uitgevoerd en u het configuratiebestand wilt bewerken, moet u de registratie van de SQLDIAG service ongedaan maken door het /U opdrachtregelargument op te geven en de service vervolgens opnieuw te registreren met behulp van het /R opdrachtregelargument. Als u de registratie van de service ongedaan maakt en opnieuw registreert, worden oude configuratiegegevens verwijderd die in het Windows-register in de cache zijn opgeslagen.

Uitvoermap

Als u geen uitvoermap met het /O argument opgeeft, maakt SQLdiag een submap met de naam onder SQLDIAG de opstartmap SQLdiag . Zorg ervoor dat de uitvoermap zich op een lokaal station bevindt met voldoende ruimte om de aangevraagde diagnostische uitvoer op te slaan bij het verzamelen van diagnostische gegevens met een hoge traceervolume, zoals bij SQL Server Profiler.

Wanneer SQLdiag opnieuw wordt gestart, wordt de inhoud van de uitvoermap overschreven. U kunt dit voorkomen door /N 2 op de opdrachtregel op te geven.

Proces voor gegevensverzameling

Wanneer SQLdiag wordt gestart, worden de initialisatiecontroles uitgevoerd die nodig zijn om de diagnostische gegevens te verzamelen die zijn opgegeven in SQLdiag.xml. Dit proces kan enkele seconden duren. Nadat SQLdiag diagnostische gegevens heeft verzameld wanneer deze als consoletoepassing wordt uitgevoerd, wordt er een bericht weergegeven waarin wordt aangegeven dat de SQLdiag-verzameling is gestart en dat u op Ctrl+C kunt drukken om deze te stoppen. Wanneer SQLdiag wordt uitgevoerd als een service, wordt een vergelijkbaar bericht naar het Windows-gebeurtenislogboek geschreven.

Als u SQLdiag gebruikt om een probleem vast te stellen dat u kunt reproduceren, wacht u totdat u dit bericht ontvangt voordat u het probleem op de server reproduceert.

SQLdiag verzamelt de meeste diagnostische gegevens parallel. Alle diagnostische gegevens worden verzameld door verbinding te maken met hulpprogramma's, zoals het SQL Server sqlcmd-hulpprogramma of de Windows-opdrachtprocessor, behalve wanneer gegevens worden verzameld uit windows-prestatielogboeken en gebeurtenislogboeken. SQLdiag gebruikt één werkdraad per computer om de verzameling van diagnostische gegevens van deze andere hulpprogramma's te bewaken en vaak tegelijk wachtend op de voltooiing van verschillende hulpprogramma's. Tijdens het verzamelingsproces stuurt SQLdiag de uitvoer van elke diagnose naar de uitvoermap.

Gegevensverzameling stoppen

Nadat SQLdiag diagnostische gegevens begint te verzamelen, blijft dit zo, tenzij u het handmatig stopt via Ctrl+C, of u maakt een sqldiag.stop bestand, of configureert u het om te stoppen op een opgegeven tijdstip. U kunt SQLdiag zo configureren dat deze op een bepaald tijdstip stopt met behulp van het /E argument of door het /X argument te gebruiken, waardoor SQLdiag wordt uitgevoerd in de momentopnamemodus.

Wanneer SQLdiag stopt, stopt het alle diagnosetools die het heeft gestart. Het stopt bijvoorbeeld sql Server Profiler-traceringen die het verzamelt, het stopt met het uitvoeren van Transact-SQL scripts die worden uitgevoerd, en het stopt alle subprocessen die het heeft geactiveerd tijdens het verzamelen van gegevens. Nadat het verzamelen van diagnostische gegevens is voltooid, wordt SQLdiag afgesloten.

SQLdiag stoppen bij uitvoering als consoletoepassing

Als u SQLdiag als consoletoepassing uitvoert, drukt u op Ctrl+C in het consolevenster waarin SQLdiag wordt uitgevoerd om deze te stoppen. Nadat u op Ctrl+C hebt drukt, wordt in het consolevenster een bericht weergegeven waarin wordt aangegeven dat het verzamelen van SQLdiag-gegevens wordt beëindigd en dat u moet wachten totdat het proces wordt afgesloten, wat enkele minuten kan duren.

Druk tweemaal op Ctrl+C om alle onderliggende diagnostische processen te beëindigen en de toepassing onmiddellijk te beëindigen.

SQLdiag stoppen bij het uitvoeren als een service

Als u SQLdiag als een service uitvoert, voert u deze uit sqldiag STOP in de opstartmap SQLdiag om deze te stoppen. Of u kunt de SQLdiag-services stoppen in de Services.msc applet.

Opmerking

Het onderbreken van de SQLdiag-service wordt niet ondersteund. Als u de SQLdiag-service probeert te onderbreken, stopt deze nadat het verzamelen van de diagnostische gegevens is voltooid die zijn verzameld toen u de service onderbrak. Als u SQLdiag opnieuw start nadat u deze hebt gestopt, wordt de toepassing opnieuw opgestart en wordt de uitvoermap overschreven. Als u wilt voorkomen dat de uitvoermap wordt overschreven, specificeert u /N 2 op de opdrachtregel.

Als u meerdere exemplaren van SQLdiag op dezelfde computer uitvoert, kunt u ook de naam van het SQLdiag-exemplaar doorgeven aan op de opdrachtregel wanneer u de service stopt. Als u bijvoorbeeld een SQLdiag-exemplaar met de naam Instance1 wilt stoppen, gebruikt u de volgende syntaxis:

sqldiag STOP /A Instance1

/A is het enige opdrachtregelargument dat kan worden gebruikt met START, STOPof STOP_ABORT. Als u een benoemd exemplaar van SQLdiag wilt opgeven met een van de servicebeheeropdrachten, geeft u /A na het besturingswerkwoord op de opdrachtregel op, zoals wordt weergegeven in het vorige syntaxisvoorbeeld. Wanneer besturingswerkwoorden worden gebruikt, moeten ze het eerste argument op de opdrachtregel zijn.

Als u de service zo snel mogelijk wilt stoppen, voert u deze uit sqldiag STOP_ABORT in de opstartmap van het hulpprogramma. Met deze opdracht wordt het verzamelen van diagnostische gegevens die momenteel worden uitgevoerd, afgebroken zonder te wachten tot ze zijn voltooid.

Opmerking

Gebruik sqldiag STOP of sqldiag STOP_ABORT om de SQLdiag-service te stoppen. Gebruik de Windows Services-console niet om SQLdiag of andere SQL Server-services te stoppen.

SQLdiag stoppen met behulp van het bestand sqldiag.stop

SQLdiag wordt ook automatisch afgesloten wanneer er een bestand wordt gevonden met de naam sqldiag.stop in de map van \Output het hulpprogramma. Deze optie is van toepassing, ongeacht of SQLdiag wordt uitgevoerd als een console-app of als een service. Het maken van een .stop bestand kan handig zijn als u SQLdiag programmatisch wilt afsluiten nadat een gebeurtenis is opgetreden, maar u weet niet van tevoren wanneer deze gebeurtenis plaatsvindt. De inhoud van het sqldiag.stop bestand is niet relevant. Een optie, naast het handmatig maken van het bestand, is het gebruik van een opdracht zoals het volgende in een batchbestand om te maken sqldiag.stop:

ECHO stop > F:\PSSDIAG\Output\sqldiag.stop

Een andere optie is om PowerShell te gebruiken:

Set-Content -Value "stop" -Path "F:\PSSDIAG\Output\sqldiag.stop"

SQLdiag automatisch starten en stoppen

Als u het verzamelen van diagnostische gegevens op een bepaald tijdstip automatisch wilt starten en stoppen, gebruikt u de /B <start_time> en /E <stop_time> argumenten met behulp van een notatie van 24 uur. Als u bijvoorbeeld een probleem wilt oplossen dat consistent om ongeveer 02:00:00 uur wordt weergegeven, kunt u SQLdiag zo configureren dat automatisch diagnostische gegevens worden verzameld om 01:45 en automatisch om 03:00:00 uur worden gestopt.

Gebruik de /B en /E argumenten om de begin- en eindtijd op te geven. Gebruik een notatie van 24 uur om een exacte begin- en einddatum en -tijd op te geven met de algemene notatie yyyyMMdd_HH:mm:ss. In het volgende voorbeeld wordt het verzamelen van gegevens om 01:45 gestart en gestopt om 3:00 uur.

sqldiag /B 01:45:00 /E 03:00:00

Als u een relatieve begin- of eindtijd wilt opgeven, moet u de begin- en eindtijd vooraf laten en + het datumgedeelte (yyyyMMdd_) weglaten, zoals wordt weergegeven in het volgende voorbeeld. Dit zorgt ervoor dat SQLdiag één uur wacht voordat deze begint met het verzamelen van gegevens, waarna het gedurende twee en een half uur informatie verzamelt voordat het stopt en afsluit:

sqldiag /B +01:00:00 /E +02:30:00

Wanneer een relatieve start_time is opgegeven, begint SQLdiag op een tijdstip dat relatief is ten opzichte van de huidige datum en tijd. Wanneer een relatieve end_time is opgegeven, eindigt SQLdiag op een tijdstip dat relatief is ten opzichte van de opgegeven start_time. Als de begin- of einddatum en -tijd die u hebt opgegeven zich in het verleden bevinden, wijzigt SQLdiag de begindatum geforceerd zodat de begindatum en -tijd in de toekomst zijn.

Dit heeft belangrijke gevolgen voor de begin- en einddatums die u kiest. Bekijk het volgende voorbeeld:

sqldiag /B +01:00:00 /E 08:30:00

Als de huidige tijd 08:00 uur is, wordt de eindtijd verstreken voordat de diagnostische verzameling daadwerkelijk begint. Omdat SQLdiag automatisch begin- en einddatums aanpast aan de volgende dag wanneer deze zich in het verleden voordoen, begint in dit voorbeeld diagnostische verzameling vandaag om 09:00 uur (een relatieve begintijd is opgegeven om 1 uur vanaf nu met ) +en blijft verzamelen tot 08:30 de volgende ochtend.

SQLdiag stoppen en opnieuw starten om dagelijkse diagnostische gegevens te verzamelen

Als u dagelijks een opgegeven set diagnostische gegevens wilt verzamelen zonder SQLdiag handmatig te hoeven starten en stoppen, gebruikt u het /L argument. Het /L argument zorgt ervoor dat SQLdiag continu wordt uitgevoerd door zichzelf automatisch opnieuw op te starten na een geplande afsluiting. Wanneer /L is opgegeven en SQLdiag stopt omdat deze de eindtijd heeft bereikt die is opgegeven met het /E argument, of omdat het wordt uitgevoerd in de momentopnamemodus met behulp van het /X argument, wordt SQLdiag opnieuw gestart in plaats van af te sluiten.

In het volgende voorbeeld wordt aangegeven dat SQLdiag wordt uitgevoerd in de continue modus om automatisch opnieuw op te starten nadat het verzamelen van diagnostische gegevens plaatsvindt tussen 03:00:00 en 05:00:00.

sqldiag /B 03:00:00 /E 05:00:00 /L

In het volgende voorbeeld wordt aangegeven dat SQLdiag wordt uitgevoerd in de continue modus om automatisch opnieuw op te starten nadat u een momentopname van diagnostische gegevens hebt gemaakt om 03:00:00.

sqldiag /B 03:00:00 /X /L

SQLdiag uitvoeren als een service

Wanneer u SQLdiag wilt gebruiken voor het verzamelen van diagnostische gegevens gedurende langere tijd, waarin u zich mogelijk moet afmelden bij de computer waarop SQLdiag wordt uitgevoerd, kunt u deze uitvoeren als een service.

SQLdiag registreren om uit te voeren als een service

U kunt SQLdiag registreren om als een service uit te voeren door het /R argument op te geven op de opdrachtregel. Hiermee wordt SQLdiag geregistreerd voor uitvoering als een service. De naam van de SQLdiag-service is SQLDIAG. Eventuele andere argumenten die u opgeeft op de opdrachtregel wanneer u SQLdiag als een service registreert, blijven behouden en hergebruikt wanneer de service wordt gestart.

Als u de standaardservicenaam SQLDIAG wilt wijzigen, gebruikt u het /A opdrachtregelargument om een andere naam op te geven. SQLdiag voegt DIAG$ automatisch toe aan elke naam van een SQLdiag-exemplaar, gespecificeerd met /A, om verstandige servicenamen te maken.

Registratie van de SQLDIAG-service ongedaan maken

Als u de registratie van de service ongedaan wilt maken, geeft u het /U argument op. Als u de registratie van SQLdiag als een service ongedaan wilt maken, worden ook de Windows-registersleutels van de service verwijderd.

De SQLDIAG-service starten of opnieuw starten

Om de SQLDIAG service te starten of opnieuw te starten, voert u sqldiag START uit vanaf de opdrachtregel.

Als u meerdere exemplaren van SQLdiag uitvoert met behulp van het /A argument, kunt u ook de naam van het SQLdiag-exemplaar doorgeven op de opdrachtregel wanneer u de service start. Als u bijvoorbeeld een SQLdiag-exemplaar wilt starten met de naam Instance1, gebruikt u de volgende syntaxis:

sqldiag START /A Instance1

U kunt ook de net start opdracht gebruiken om de SQLDIAG service te starten.

Wanneer u SQLdiag opnieuw start, wordt de inhoud in de huidige uitvoermap overschreven. U kunt dit voorkomen door /N 2 op de opdrachtregel de naam van de uitvoermap te wijzigen wanneer het hulpprogramma wordt gestart.

Het onderbreken van de SQLdiag-service wordt niet ondersteund.

Meerdere exemplaren van SQLdiag uitvoeren

Voer meerdere exemplaren van SQLdiag uit op dezelfde computer door te specificeren op de opdrachtregel met behulp van /A <SQLdiag_application_name>. Dit is handig voor het verzamelen van verschillende diagnostische gegevenssets tegelijk van hetzelfde SQL Server-exemplaar. U kunt bijvoorbeeld een benoemd exemplaar van SQLdiag configureren om continu lichtgewicht gegevensverzameling uit te voeren. Als er vervolgens een specifiek probleem optreedt in SQL Server, kunt u het standaard SQLdiag-exemplaar uitvoeren om diagnostische gegevens voor dat probleem te verzamelen, of om een set diagnostische gegevens te verzamelen die microsoft-klantenservice u vraagt om een probleem te diagnosticeren.

Diagnostische gegevens verzamelen van geclusterde SQL Server-exemplaren

SQLdiag ondersteunt het verzamelen van diagnostische gegevens van geclusterde SQL Server-exemplaren. Als u diagnostische gegevens wilt verzamelen van geclusterde SQL Server-exemplaren, moet u ervoor zorgen dat dit "." is opgegeven voor het name kenmerk van het <Machine> element in het configuratiebestand SQLdiag.xml en niet het /G argument op de opdrachtregel opgeeft. Standaard is "." opgegeven voor het name kenmerk in het configuratiebestand en staat het /G argument uit. Normaal gesproken hoeft u het configuratiebestand niet te bewerken of de opdrachtregelargumenten te wijzigen bij het verzamelen van een geclusterd SQL Server-exemplaar.

Wanneer "." wordt opgegeven als de naam van de machine, detecteert SQLdiag dat deze wordt uitgevoerd op een cluster en haalt tegelijkertijd diagnostische gegevens op uit alle virtuele exemplaren van SQL Server die op het cluster zijn geïnstalleerd. Als u diagnostische gegevens wilt verzamelen van slechts één virtueel exemplaar van SQL Server dat op een computer wordt uitgevoerd, geeft u die virtuele SQL Server op voor het name kenmerk van het <Machine> element in SQLdiag.xml.

Opmerking

Als u traceringsgegevens van SQL Server Profiler wilt verzamelen van geclusterde SQL Server-exemplaren, moeten beheershares (ADMIN$) zijn ingeschakeld op het cluster.