Dela via


sp_trace_create (Transact-SQL)

gäller för:SQL Server

Skapar en spårningsdefinition. Den nya spårningen är i ett stoppat tillstånd.

Viktig

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd Utökade händelser i stället.

Transact-SQL syntaxkonventioner

Syntax

sp_trace_create
    [ @traceid = ] traceid OUTPUT
    , [ @options = ] options
    , [ @tracefile = ] N'tracefile'
    [ , [ @maxfilesize = ] maxfilesize ]
    [ , [ @stoptime = ] 'stoptime' ]
    [ , [ @filecount = ] filecount ]
[ ; ]

Argument

Viktig

Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.

[ @traceid = ] traceid OUTPUT

Numret som tilldelats av SQL Server till den nya spårningen. Alla användarindata ignoreras. @traceid är en OUTPUT-parameter av typen int, med standardvärdet NULL. Användaren använder värdet @traceid för att identifiera, ändra och kontrollera spårningen som definieras av den här lagrade proceduren.

[ @options = ] alternativ

Anger de alternativ som angetts för spårningen. @options är int, utan standard. Du kan välja en kombination av de här alternativen genom att ange summavärdet för de alternativ som valts. Om du till exempel vill aktivera både alternativen TRACE_FILE_ROLLOVER och SHUTDOWN_ON_ERRORanger du 6 för @options.

I följande tabell visas alternativ, beskrivningar och deras värden.

Alternativnamn Alternativvärde Beskrivning
TRACE_FILE_ROLLOVER 2 Anger att när @filecount nås stängs den aktuella spårningsfilen och en ny fil skapas. Alla nya poster skrivs till den nya filen. Den nya filen har samma namn som föregående fil, men ett heltal läggs till för att ange dess sekvens. Om den ursprungliga spårningsfilen till exempel heter filename.trcheter nästa spårningsfil filename_1.trc, följande spårningsfil är filename_2.trcoch så vidare.

När fler rollover-spårningsfiler skapas ökar heltalsvärdet som läggs till i filnamnet sekventiellt.

SQL Server använder standardvärdet @filecount (5 MB) om det här alternativet anges utan att ange ett värde för @filecount.
SHUTDOWN_ON_ERROR 4 Anger att om spårningen inte kan skrivas till filen av någon anledning stängs SQL Server av. Det här alternativet är användbart när du utför säkerhetsgranskningsspårningar.
TRACE_PRODUCE_BLACKBOX 8 Anger att en post med de senaste 5 MB spårningsinformationen som skapats av servern sparas av servern. TRACE_PRODUCE_BLACKBOX är inte kompatibelt med alla andra alternativ.

[ @tracefile = ] N'spårningsfil"

Anger platsen och filnamnet som spårningen skrivs till. @tracefile är nvarchar(245) utan standard. @tracefile kan vara antingen en lokal katalog (till exempel N'C:\MSSQL\Trace\trace.trc') eller en UNC till en resurs eller sökväg (till exempel N'\\<servername>\<sharename>\<directory>\trace.trc').

SQL Server lägger till ett .trc-tillägg till alla spårningsfilnamn. Om alternativet TRACE_FILE_ROLLOVER och en @filecount anges skapar SQL Server en ny spårningsfil när den ursprungliga spårningsfilen växer till sin maximala storlek. Den nya filen har samma namn som den ursprungliga filen, men _n läggs till för att ange dess sekvens, från och med 1. Om den första spårningsfilen till exempel heter filename.trcheter den andra spårningsfilen filename_1.trc.

Om du använder alternativet TRACE_FILE_ROLLOVER rekommenderar vi att du inte använder understreckstecken i det ursprungliga spårningsfilnamnet. Om du använder understreck inträffar följande beteende:

  • SQL Server Profiler läser inte in automatiskt eller uppmanar dig att läsa in rollover-filerna (om något av dessa alternativ för filåterställning har konfigurerats).

  • Funktionen sys.fn_trace_gettable läser inte in rollover-filer (när den anges med argumentet @number_files) där det ursprungliga filnamnet slutar med ett understreck och ett numeriskt värde. (Detta gäller inte för understrecket och talet som läggs till automatiskt när en fil rullas över.)

Not

Som en lösning för båda dessa beteenden kan du byta namn på filerna för att ta bort understrecken i det ursprungliga filnamnet. Om den ursprungliga filen till exempel heter my_trace.trcoch rollover-filen heter my_trace_1.trckan du byta namn på filerna till mytrace.trc och mytrace_1.trc innan du öppnar filerna i SQL Server Profiler.

@tracefile kan inte anges när alternativet TRACE_PRODUCE_BLACKBOX används.

[ @maxfilesize = ] maxfilesize

Anger den maximala storleken i megabyte (MB) som en spårningsfil kan öka. @maxfilesize är bigint, med standardvärdet 5.

Om den här parametern anges utan alternativet TRACE_FILE_ROLLOVER slutar spårningen att spela in till filen när diskutrymmet som används överskrider den mängd som anges av @maxfilesize.

[ @stoptime = ] "stopptid"

Anger datum och tid då spårningen stoppas. @stoptime är datetime, med standardvärdet NULL. Om NULLkörs spårningen tills den stoppas manuellt eller tills servern stängs av.

Om både @stoptime och @maxfilesize anges och TRACE_FILE_ROLLOVER inte anges, toppar spårningen när antingen den angivna stopptiden eller den maximala filstorleken uppnås. Om @stoptime, @maxfilesizeoch TRACE_FILE_ROLLOVER anges stoppas spårningen vid den angivna stopptiden, förutsatt att spårningen inte fyller enheten.

[ @filecount = ] "filecount"

Anger det maximala antalet eller spårningsfilerna som ska underhållas med samma basfilnamn. @filecount är int, större än 1. Den här parametern är endast giltig om alternativet TRACE_FILE_ROLLOVER anges. När @filecount anges försöker SQL Server behålla högst @filecount spårningsfiler genom att ta bort den äldsta spårningsfilen innan en ny spårningsfil öppnas. SQL Server spårar spårningsfilernas ålder genom att lägga till ett tal i basfilnamnet.

När parametern @tracefile till exempel anges som C:\mytraceär en fil med namnet C:\mytrace_123.trc äldre än en fil med namnet C:\mytrace_124.trc. Om @filecount är inställt på 2tar SQL Server bort filen C:\mytrace_123.trc innan du skapar spårningsfilen C:\mytrace_125.trc.

SQL Server försöker bara ta bort varje fil en gång och kan inte ta bort en fil som används av en annan process. Om ett annat program arbetar med spårningsfiler medan spårningen körs kan SQL Server därför lämna dessa spårningsfiler i filsystemet.

Returnera kodvärden

I följande tabell beskrivs de kodvärden som du kan få efter att den lagrade proceduren har slutförts.

Returnera kod Beskrivning
0 Inget fel.
1 Okänt fel.
10 Ogiltiga alternativ. Returneras när angivna alternativ är inkompatibla.
12 Filen har inte skapats.
13 Slut på minne. Returneras när det inte finns tillräckligt med minne för att utföra den angivna åtgärden.
14 Ogiltig stopptid. Returneras när den angivna stopptiden redan har inträffat.
15 Ogiltiga parametrar. Returneras när användaren angav inkompatibla parametrar.

Anmärkningar

sp_trace_create är en lagrad SQL Server-procedur som utför många av de åtgärder som tidigare utfördes av xp_trace_* utökade lagrade procedurer som är tillgängliga i tidigare versioner av SQL Server. Använd sp_trace_create i stället för:

  • xp_trace_addnewqueue
  • xp_trace_setqueuecreateinfo
  • xp_trace_setqueuedestination

sp_trace_create skapar bara en spårningsdefinition. Den här lagrade proceduren kan inte användas för att starta eller ändra en spårning.

Parametrar för alla SQL Trace-lagrade procedurer (sp_trace_*) skrivs strikt. Om dessa parametrar inte anropas med rätt datatyper för indataparametrar, som anges i argumentbeskrivningen, returnerar den lagrade proceduren ett fel.

För sp_trace_createmåste SQL Server-tjänstkontot ha skriva behörighet i spårningsfilmappen. Om SQL Server-tjänstkontot inte är administratör på den dator där spårningsfilen finns måste du uttryckligen bevilja skrivbehörighet till SQL Server-tjänstkontot.

Not

Du kan automatiskt läsa in spårningsfilen som skapats med sp_trace_create i en tabell med hjälp av fn_trace_gettable systemfunktion. Mer information finns i sys.fn_trace_gettable.

Ett exempel på hur du använder spårnings lagrade procedurer finns i Skapa en spårning.

TRACE_PRODUCE_BLACKBOX har följande egenskaper:

  • Det är en rollover-spårning. Standard @filecount är 2 men kan åsidosättas av användaren med hjälp av @filecount alternativet.

  • Standardvärdet @maxfilesize, precis som med andra spårningar, är 5 MB och kan ändras.

  • Inget filnamn kan anges. Filen sparas som: N'%SQLDIR%\MSSQL\DATA\blackbox.trc'.

  • Endast följande händelser och deras kolumner finns i spårningen:

    • RPC startar
    • Batch startar
    • Undantag
    • Uppmärksamhet
  • Händelser eller kolumner kan inte läggas till eller tas bort från den här spårningen.

  • Det går inte att ange filter för den här spårningen.

Behörigheter

Kräver ALTER TRACE-behörighet.