Megosztás a következőn keresztül:


sp_trace_create (Transact-SQL)

A következőkre vonatkozik:SQL Server

Létrehoz egy nyomkövetési definíciót. Az új nyomkövetés leállt állapotban van.

Fontos

Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Használja helyette a Bővített események parancsot.

Transact-SQL szintaxis konvenciói

Szintaxis

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

Érvek

Fontos

A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.

[ @traceid = ] traceid OUTPUT

Az SQL Server által az új nyomkövetéshez rendelt szám. A rendszer figyelmen kívül hagyja a felhasználó által megadott adatokat. @traceidtípusú OUTPUT paraméter, alapértelmezett értéke NULL. A felhasználó a @traceid értéket alkalmazza a tárolt eljárás által meghatározott nyomkövetés azonosítására, módosítására és szabályozására.

[ @options = ] beállítások

Megadja a nyomkövetéshez megadott beállításokat. @optionsint, alapértelmezés nélkül. Ezeknek a beállításoknak a kombinációját a kiválasztott beállítások összegének megadásával választhatja ki. A TRACE_FILE_ROLLOVER és a SHUTDOWN_ON_ERRORbeállítás bekapcsolásához például adja meg a @options6.

Az alábbi táblázat a beállításokat, leírásokat és azok értékeit sorolja fel.

Beállítás neve Beállítás értéke Leírás
TRACE_FILE_ROLLOVER 2 Megadja, hogy a @filecount elérésekor a rendszer bezárja az aktuális nyomkövetési fájlt, és létrehoz egy új fájlt. A rendszer minden új rekordot az új fájlba ír. Az új fájl neve megegyezik az előző fájl nevével, de egy egész szám van hozzáfűzve, hogy jelezze a sorozatát. Ha például az eredeti nyomkövetési fájl neve filename.trc, a következő nyomkövetési fájl neve filename_1.trc, a következő nyomkövetési fájl filename_2.trc, és így tovább.

A több átgörgető nyomkövetési fájl létrehozásakor a fájlnévhez hozzáfűzött egész szám egymás után növekszik.

Az SQL Server a @filecount (5 MB) alapértelmezett értékét használja, ha ez a beállítás @filecountértékének megadása nélkül van megadva.
SHUTDOWN_ON_ERROR 4 Megadja, hogy ha a nyomkövetés bármilyen okból nem írható a fájlba, az SQL Server leáll. Ez a beállítás biztonsági naplózási nyomkövetések végrehajtásakor hasznos.
TRACE_PRODUCE_BLACKBOX 8 Megadja, hogy a kiszolgáló által előállított nyomkövetési információk utolsó 5 MB-jának rekordját a kiszolgáló mentse. TRACE_PRODUCE_BLACKBOX nem kompatibilis az összes többi beállítással.

[ @tracefile = ] N'tracefile'

Megadja a nyomkövetés helyét és fájlnevét. @tracefile alapértelmezés nélkül nvarchar(245). @tracefile lehet helyi könyvtár (például N'C:\MSSQL\Trace\trace.trc') vagy egy megosztáshoz vagy elérési úthoz tartozó UNC (például N'\\<servername>\<sharename>\<directory>\trace.trc').

Az SQL Server hozzáfűz egy .trc kiterjesztést az összes nyomkövetési fájlnévhez. Ha meg van adva a TRACE_FILE_ROLLOVER beállítás és egy @filecount, az SQL Server új nyomkövetési fájlt hoz létre, amikor az eredeti nyomkövetési fájl mérete eléri a maximális méretét. Az új fájl neve megegyezik az eredeti fájl nevével, de a _n hozzá van fűzve, hogy jelezze a sorozatát, kezdve a 1. Ha például az első nyomkövetési fájl neve filename.trc, a második nyomkövetési fájl neve filename_1.trc.

Ha a TRACE_FILE_ROLLOVER lehetőséget használja, javasoljuk, hogy ne használjon aláhúzásjeleket az eredeti nyomkövetési fájlnévben. Ha aláhúzásokat használ, a következő viselkedés következik be:

  • Az SQL Server Profiler nem töltődik be automatikusan, és nem kéri az átgörgető fájlok betöltését (ha a fájláthelyezési beállítások valamelyike konfigurálva van).

  • A sys.fn_trace_gettable függvény nem tölt be átgörgető fájlokat (ha az @number_files argumentummal van megadva), ahol az eredeti fájlnév aláhúzásjellel és numerikus értékkel végződik. (Ez nem vonatkozik arra az aláhúzásra és számra, amelyet a rendszer automatikusan hozzáfűz egy fájl átgörgetésekor.)

Jegyzet

Mindkét viselkedés kerülő megoldásaként átnevezheti a fájlokat, hogy eltávolítsa az aláhúzásjeleket az eredeti fájlnévből. Ha például az eredeti fájl neve my_trace.trc, és az átállásos fájl neve my_trace_1.trc, a fájlok átnevezhetők mytrace.trc és mytrace_1.trc, mielőtt megnyitják a fájlokat az SQL Server Profilerben.

@tracefile nem adhatók meg a TRACE_PRODUCE_BLACKBOX beállítás használatakor.

[ @maxfilesize = ] maxfilesize

Megabájtban (MB) határozza meg a nyomkövetési fájlok növekedésének maximális méretét. @maxfilesizebigint, alapértelmezett értéke 5.

Ha ez a paraméter a TRACE_FILE_ROLLOVER beállítás nélkül van megadva, a nyomkövetés leállítja a fájlba való felvételt, ha a felhasznált lemezterület meghaladja a @maxfilesizeáltal megadott értéket.

[ @stoptime = ] 'stoptime'

Megadja a nyomkövetés leállításának dátumát és időpontját. @stoptimedatetime, alapértelmezett értéke NULL. Ha NULL, a nyomkövetés addig fut, amíg manuálisan le nem áll, vagy amíg a kiszolgáló le nem áll.

Ha @stoptime és @maxfilesize is meg van adva, és TRACE_FILE_ROLLOVER nincs megadva, a nyomkövetési csúcsok a megadott leállítási idő vagy a maximális fájlméret elérésekor jelennek meg. Ha @stoptime, @maxfilesizeés TRACE_FILE_ROLLOVER van megadva, a nyomkövetés a megadott leállítási időpontban leáll, feltéve, hogy a nyomkövetés nem tölti ki a meghajtót.

[ @filecount = ] 'filecount'

Megadja az azonos alapfájlnévvel karbantartandó maximális szám- vagy nyomkövetési fájlokat. @filecountint, nagyobb, mint 1. Ez a paraméter csak akkor érvényes, ha a TRACE_FILE_ROLLOVER beállítás meg van adva. Ha @filecount van megadva, az SQL Server legfeljebb @filecount nyomkövetési fájlokat próbál fenntartani úgy, hogy törli a legrégebbi nyomkövetési fájlt egy új nyomkövetési fájl megnyitása előtt. Az SQL Server egy számnak az alapfájlnévhez való hozzáfűzésével nyomon követi a nyomkövetési fájlok életkorát.

Ha például a @tracefile paraméter C:\mytracevan megadva, a C:\mytrace_123.trc nevű fájl régebbi, mint a C:\mytrace_124.trcnevű fájl. Ha @filecount2értékre van állítva, az SQL Server törli a fájlt C:\mytrace_123.trc a nyomkövetési fájl C:\mytrace_125.trclétrehozása előtt.

Az SQL Server csak egyszer próbálja törölni az egyes fájlokat, és egy másik folyamat által használt fájlt nem tud törölni. Ezért ha egy másik alkalmazás nyomkövetési fájlokkal dolgozik a nyomkövetés futtatása közben, előfordulhat, hogy az SQL Server ezeket a nyomkövetési fájlokat a fájlrendszerben hagyja.

Kódértékek visszaadása

Az alábbi táblázat a tárolt eljárás befejezését követően lekérhető kódértékeket ismerteti.

Kód visszaadása Leírás
0 Nincs hiba.
1 Ismeretlen hiba.
10 Érvénytelen beállítások. Akkor adja vissza, ha a megadott beállítások nem kompatibilisek.
12 A fájl nincs létrehozva.
13 Nincs memóriája. Akkor adja vissza, ha nincs elegendő memória a megadott művelet végrehajtásához.
14 Érvénytelen leállítási idő. Akkor adja vissza, ha a megadott leállítási idő már megtörtént.
15 Érvénytelen paraméterek. Akkor adja vissza, ha a felhasználó nem kompatibilis paramétereket adott meg.

Megjegyzések

sp_trace_create egy SQL Server által tárolt eljárás, amely végrehajtja az SQL Server korábbi verzióiban elérhető kiterjesztett tárolt eljárások xp_trace_* által korábban végrehajtott műveletek nagy részét. A következő helyett használja a sp_trace_create:

  • xp_trace_addnewqueue
  • xp_trace_setqueuecreateinfo
  • xp_trace_setqueuedestination

sp_trace_create csak nyomkövetési definíciót hoz létre. Ez a tárolt eljárás nem használható nyomkövetés indítására vagy módosítására.

Az SQL Trace által tárolt összes eljárás (sp_trace_*) paraméterei szigorúan be vannak gépelve. Ha ezek a paraméterek nem a megfelelő bemeneti paraméter adattípusokkal vannak meghívva, az argumentum leírásában megadottak szerint a tárolt eljárás hibát ad vissza.

sp_trace_createesetén az SQL Server szolgáltatásfiókjának írási engedéllyel kell rendelkeznie a nyomkövetési fájl mappájában. Ha az SQL Server szolgáltatásfiók nem rendszergazda azon a számítógépen, amelyen a nyomkövetési fájl található, explicit módon írási engedélyt kell adnia az SQL Server szolgáltatásfiókjának.

Jegyzet

A sp_trace_create létrehozott nyomkövetési fájlt automatikusan betöltheti egy táblába a fn_trace_gettable rendszerfüggvény használatával. További információ: sys.fn_trace_gettable.

A nyomkövetési tárolt eljárások használatára példa: Nyomkövetésilétrehozása.

TRACE_PRODUCE_BLACKBOX a következő jellemzőkkel rendelkezik:

  • Ez egy átgördítő nyom. Az alapértelmezett @filecount 2, de a felhasználó felülírhatja @filecount beállítással.

  • Az alapértelmezett @maxfilesize– a többi nyomkövetéshez hasonlóan – 5 MB, és módosítható.

  • Nem adható meg fájlnév. A fájl mentése a következőként történik: N'%SQLDIR%\MSSQL\DATA\blackbox.trc'.

  • A nyomkövetés csak a következő eseményeket és azok oszlopait tartalmazza:

    • RPC indítása
    • Batch indítása
    • kivétel
    • Figyelem
  • Az események vagy oszlopok nem vehetők fel vagy távolíthatók el ebből a nyomkövetésből.

  • Ehhez a nyomkövetéshez nem lehet szűrőket megadni.

Engedélyek

ALTER TRACE-engedélyt igényel.