Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Tworzy definicję śledzenia. Nowy ślad jest w stanie zatrzymanym.
Ważny
Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zamiast tego użyj zdarzeń rozszerzonych.
Transact-SQL konwencje składni
Składnia
sp_trace_create
[ @traceid = ] traceid OUTPUT
, [ @options = ] options
, [ @tracefile = ] N'tracefile'
[ , [ @maxfilesize = ] maxfilesize ]
[ , [ @stoptime = ] 'stoptime' ]
[ , [ @filecount = ] filecount ]
[ ; ]
Argumenty
Ważny
Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.
[ @traceid = ] traceid OUTPUT
Liczba przypisana przez program SQL Server do nowego śledzenia. Wszystkie dane wejściowe udostępniane przez użytkownika są ignorowane.
@traceid jest parametrem OUTPUT typu int, z wartością domyślną NULL
. Użytkownik wykorzystuje wartość @traceid do identyfikowania, modyfikowania i kontrolowania śledzenia zdefiniowanego przez tę procedurę składowaną.
[ @options = ] opcje
Określa opcje ustawione dla śledzenia.
@options jest int bez wartości domyślnej. Możesz wybrać kombinację tych opcji, określając łączną wartość wybranych opcji. Aby na przykład włączyć opcje TRACE_FILE_ROLLOVER
i SHUTDOWN_ON_ERROR
, określ 6
dla @options.
W poniższej tabeli wymieniono opcje, opisy i ich wartości.
Nazwa opcji | Wartość opcji | Opis |
---|---|---|
TRACE_FILE_ROLLOVER |
2 |
Określa, że po osiągnięciu @filecount bieżący plik śledzenia zostanie zamknięty i zostanie utworzony nowy plik. Wszystkie nowe rekordy są zapisywane w nowym pliku. Nowy plik ma taką samą nazwę jak poprzedni plik, ale dołączono liczbę całkowitą, aby wskazać jego sekwencję. Jeśli na przykład oryginalny plik śledzenia nosi nazwę filename.trc , następny plik śledzenia nosi nazwę filename_1.trc , następujący plik śledzenia jest filename_2.trc itd.W miarę tworzenia plików śledzenia przerzucania wartość całkowita dołączona do nazwy pliku zwiększa się sekwencyjnie. Program SQL Server używa wartości domyślnej @filecount (5 MB), jeśli ta opcja jest określona bez określania wartości dla @filecount. |
SHUTDOWN_ON_ERROR |
4 |
Określa, że jeśli nie można zapisać śledzenia do pliku z dowolnego powodu, program SQL Server zostanie zamknięty. Ta opcja jest przydatna podczas wykonywania śladów inspekcji zabezpieczeń. |
TRACE_PRODUCE_BLACKBOX |
8 |
Określa, że rekord ostatnich 5 MB informacji śledzenia generowanych przez serwer jest zapisywany przez serwer.
TRACE_PRODUCE_BLACKBOX jest niezgodna ze wszystkimi innymi opcjami. |
[ @tracefile = ] N'tracefile'
Określa lokalizację i nazwę pliku, do którego jest zapisywany ślad.
@tracefile jest nvarchar(245) bez wartości domyślnej.
@tracefile może być katalogiem lokalnym (takim jak N'C:\MSSQL\Trace\trace.trc'
) lub UNC do udziału lub ścieżki (na przykład N'\\<servername>\<sharename>\<directory>\trace.trc'
).
Program SQL Server dołącza rozszerzenie .trc
do wszystkich nazw plików śledzenia. Jeśli zostanie określona opcja TRACE_FILE_ROLLOVER
i @filecount, program SQL Server utworzy nowy plik śledzenia, gdy oryginalny plik śledzenia wzrośnie do maksymalnego rozmiaru. Nowy plik ma taką samą nazwę jak oryginalny plik, ale _n jest dołączany, aby wskazać jego sekwencję, począwszy od 1
. Jeśli na przykład pierwszy plik śledzenia nosi nazwę filename.trc
, drugi plik śledzenia nosi nazwę filename_1.trc
.
Jeśli używasz opcji TRACE_FILE_ROLLOVER
, zalecamy, aby nie używać znaków podkreślenia w oryginalnej nazwie pliku śledzenia. Jeśli używasz podkreśleń, wystąpi następujące zachowanie:
Program SQL Server Profiler nie ładuje się automatycznie lub monituje o załadowanie plików przerzucania (jeśli skonfigurowano jedną z tych opcji przerzucania plików).
Funkcja sys.fn_trace_gettable nie ładuje plików przerzucania (w przypadku określenia przy użyciu argumentu @number_files), gdzie oryginalna nazwa pliku kończy się podkreśleniami i wartością liczbową. (Nie ma to zastosowania do podkreślenia i liczby, które są automatycznie dołączane po przerzucaniu pliku).
Nuta
Aby obejść oba te zachowania, możesz zmienić nazwę plików, aby usunąć podkreślenia w oryginalnej nazwie pliku. Jeśli na przykład oryginalny plik ma nazwę my_trace.trc
, a plik przerzucania ma nazwę my_trace_1.trc
, możesz zmienić nazwę plików na mytrace.trc
i mytrace_1.trc
przed otwarciem plików w programie SQL Server Profiler.
@tracefile nie można określić, gdy jest używana opcja TRACE_PRODUCE_BLACKBOX
.
[ @maxfilesize = ] maxfilesize
Określa maksymalny rozmiar w megabajtach (MB), który plik śledzenia może rosnąć.
@maxfilesize jest bigintz wartością domyślną 5
.
Jeśli ten parametr jest określony bez TRACE_FILE_ROLLOVER
opcji, śledzenie zatrzymuje rejestrowanie w pliku, gdy używane miejsce na dysku przekracza ilość określoną przez @maxfilesize.
[ @stoptime = ] "czas zatrzymania"
Określa datę i godzinę zatrzymania śledzenia.
@stoptime jest data/godzinaz wartością domyślną NULL
. Jeśli NULL
, śledzenie jest uruchamiane do momentu jego ręcznego zatrzymania lub zamknięcia serwera.
Jeśli określono zarówno @stoptime, jak i @maxfilesize, a TRACE_FILE_ROLLOVER
nie zostanie określona, elementy śledzenia zostaną przekroczone po osiągnięciu określonego czasu zatrzymania lub maksymalnego rozmiaru pliku. Jeśli określono @stoptime, @maxfilesizei TRACE_FILE_ROLLOVER
, ślad zatrzymuje się o określonej godzinie zatrzymania, przy założeniu, że ślad nie wypełnia dysku.
[ @filecount = ] 'filecount'
Określa maksymalną liczbę lub pliki śledzenia, które mają być przechowywane przy użyciu tej samej podstawowej nazwy pliku.
@filecount jest int, większe niż 1
. Ten parametr jest prawidłowy tylko wtedy, gdy określono opcję TRACE_FILE_ROLLOVER
. Po określeniu @filecount program SQL Server próbuje zachować nie więcej niż @filecount plików śledzenia, usuwając najstarszy plik śledzenia przed otwarciem nowego pliku śledzenia. Program SQL Server śledzi wiek plików śledzenia, dołączając liczbę do podstawowej nazwy pliku.
Na przykład gdy parametr @tracefile jest określony jako C:\mytrace
, plik o nazwie C:\mytrace_123.trc
jest starszy niż plik o nazwie C:\mytrace_124.trc
. Jeśli @filecount jest ustawiona na 2
, program SQL Server usunie plik C:\mytrace_123.trc
przed utworzeniem pliku śledzenia C:\mytrace_125.trc
.
Program SQL Server próbuje usunąć każdy plik tylko raz i nie może usunąć pliku, który jest używany przez inny proces. W związku z tym jeśli inna aplikacja pracuje z plikami śledzenia podczas działania śledzenia, program SQL Server może pozostawić te pliki śledzenia w systemie plików.
Zwracanie wartości kodu
W poniższej tabeli opisano wartości kodu, które można uzyskać, po zakończeniu procedury składowanej.
Kod powrotny | Opis |
---|---|
0 |
Brak błędu. |
1 |
Nieznany błąd. |
10 |
Nieprawidłowe opcje. Zwracane, gdy określone opcje są niezgodne. |
12 |
Plik nie został utworzony. |
13 |
Brak pamięci. Zwracany, gdy nie ma wystarczającej ilości pamięci, aby wykonać określoną akcję. |
14 |
Nieprawidłowy czas zatrzymania. Zwracany, gdy określony czas zatrzymania już wystąpił. |
15 |
Nieprawidłowe parametry. Zwracany, gdy użytkownik podał niezgodne parametry. |
Uwagi
sp_trace_create
to procedura składowana programu SQL Server, która wykonuje wiele akcji wykonywanych wcześniej przez xp_trace_*
rozszerzonych procedur składowanych dostępnych we wcześniejszych wersjach programu SQL Server. Użyj sp_trace_create
zamiast:
xp_trace_addnewqueue
xp_trace_setqueuecreateinfo
xp_trace_setqueuedestination
sp_trace_create
tworzy tylko definicję śledzenia. Tej procedury składowanej nie można użyć do rozpoczęcia lub zmiany śledzenia.
Parametry wszystkich procedur składowanych śledzenia SQL (sp_trace_*
) są ściśle typizowane. Jeśli te parametry nie są wywoływane z poprawnymi typami danych parametrów wejściowych, jak określono w opisie argumentu, procedura składowana zwraca błąd.
W przypadku sp_trace_create
konto usługi programu SQL Server musi mieć uprawnienia zapisu w folderze pliku śledzenia. Jeśli konto usługi programu SQL Server nie jest administratorem na komputerze, na którym znajduje się plik śledzenia, musisz jawnie udzielić uprawnień do zapisu na koncie usługi programu SQL Server.
Nuta
Możesz automatycznie załadować plik śledzenia utworzony za pomocą sp_trace_create
do tabeli przy użyciu funkcji systemu fn_trace_gettable
. Aby uzyskać więcej informacji, zobacz sys.fn_trace_gettable.
Aby zapoznać się z przykładem używania procedur składowanych śledzenia, zobacz Create a Trace.
TRACE_PRODUCE_BLACKBOX
ma następujące cechy:
Jest to ślad przerzucania. Domyślny @filecount to 2, ale może zostać zastąpiony przez użytkownika przy użyciu opcji @filecount.
Domyślna @maxfilesize, podobnie jak w przypadku innych śladów, wynosi 5 MB i można je zmienić.
Nie można określić nazwy pliku. Plik jest zapisywany jako:
N'%SQLDIR%\MSSQL\DATA\blackbox.trc'
.W śledzeniu znajdują się tylko następujące zdarzenia i ich kolumny:
- uruchamianie RPC
- uruchamianie usługi Batch
- wyjątku
- uwagi
Nie można dodawać ani usuwać z tego śladu zdarzeń ani kolumn.
Nie można określić filtrów dla tego śledzenia.
Uprawnienia
Wymaga uprawnienia ALTER TRACE.