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_ERROR
anger 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.trc heter nästa spårningsfil filename_1.trc , följande spårningsfil är filename_2.trc och 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.trc
heter 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.trc
och rollover-filen heter my_trace_1.trc
kan 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 NULL
kö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å 2
tar 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_create
må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.