sp_trace_create (Transact-SQL)
建立追蹤定義。新追蹤會在已停止的狀態中。
語法
sp_trace_create [ @traceid = ] trace_id OUTPUT
, [ @options = ] option_value
, [ @tracefile = ] 'trace_file'
[ , [ @maxfilesize = ] max_file_size ]
[ , [ @stoptime = ] 'stop_time' ]
[ , [ @filecount = ] 'max_rollover_files' ]
引數
- [ @traceid= ] trace_id
這是 Microsoft SQL Server 2005 指派給新追蹤的號碼。系統會忽略任何使用者所提供的輸入。trace_id 是 int,預設值是 NULL。使用者會利用這個 trace_id 值來識別、修改和控制這個預存程序所定義的追蹤。
[ @options= ] option_value
指定追蹤所設定的選項。option_value 是 int,沒有預設值。使用者可以指定所取用選項的總值,來選擇這些選項的組合。例如,若要開啟 TRACE_FILE_ROLLOVER 和 SHUTDOWN_ON_ERROR 選項,請在 option_value 中指定 6。下表列出選項、描述及其值。
選項名稱 選項值 描述 TRACE_FILE_ROLLOVER
2
指定在到達 max_file_size 時,關閉目前的追蹤檔,建立一個新檔案。所有新記錄都會寫入新檔案中。新檔案與先前的檔案同名,但會附加一個整數來表示順序。例如,如果原始追蹤檔的名稱是 filename.trc,下一個追蹤檔的名稱就是 filename_1.trc,再下一個追蹤檔的名稱就是 filename_2.trc,依此類推。
在建立換用追蹤檔時,檔案名稱所附加的整數值也會循序增加。
如果指定這個選項,但沒有指定 max_file_size 值,SQL Server 就會使用 max_file_size 的預設值 (5 MB)。
SHUTDOWN_ON_ERROR
4
指定追蹤因故無法寫入檔案時,SQL Server 便關機。當執行安全性稽核追蹤時,這個選項非常有用。
TRACE_PRODUCE_BLACKBOX
8
指定伺服器將所產生最後 5 MB 的追蹤資訊記錄儲存起來。TRACE_PRODUCE_BLACKBOX 與所有其他選項不相容。
[ @tracefile= ] 'trace_file'
指定將寫入追蹤的位置和檔案名稱。trace_file 是 nvarchar(245),沒有預設值。trace_file 可以是本機目錄 (如 N 'C:\MSSQL\Trace\trace.trc'),也可以是共用或路徑的 UNC (N'\\Servername\Sharename\Directory\trace.trc')。SQL Server 會在所有追蹤檔名稱中,附加 .trc 副檔名。如果指定了 TRACE_FILE_ROLLOVER 選項和 max_file_size,當原始追蹤檔成長到其大小上限時,SQL Server 會建立一個新的追蹤檔。新檔案的名稱與原始檔案相同,但此時會從 1 開始,附加 _n 來表示它的順序。例如,如果第一個追蹤檔的名稱是 filename.trc,第二個追蹤檔的名稱就是 filename_1.trc。
當使用 TRACE_PRODUCE_BLACKBOX 選項時,無法指定 trace_file。
[ @maxfilesize= ] max_file_size
指定追蹤檔所能成長的大小上限 (以 MB 為單位)。max_file_size 是 bigint,預設值是 5。如果指定這個參數時,並未設定 TRACE_FILE_ROLLOVER 選項,當所用的磁碟空間超出 max_file_size 所指定的大小時,追蹤就會停止記錄到檔案中。
[ @stoptime= ] 'stop_time'
指定追蹤的停止日期和時間。stop_time 是 datetime,預設值是 NULL。如果是 NULL,追蹤就會執行到手動停止或伺服器關機為止。如果同時指定了 stop_time 和 max_file_size,且沒有指定 TRACE_FILE_ROLLOVER,當到達指定的停止時間或檔案大小上限時,追蹤便會停止。如果指定了 stop_time、max_file_size 和 TRACE_FILE_ROLLOVER,假設追蹤並沒有填滿磁碟,便會在指定的停止時間停止。
[ @filecount= ] 'max_rollover_files'
指定利用相同的基礎檔案名稱來維護的最大追蹤檔數目。max_rollover_files 是 int,大於 1。只有在指定了 TRACE_FILE_ROLLOVER 選項時,這個參數才有效。當指定 max_rollover_files 時,SQL Server 會在開啟新追蹤檔之前先刪除最舊的追蹤檔,嘗試使維護的追蹤檔數目不會超出 max_rollover_files。SQL Server 會在基礎檔案名稱上附加數字來追蹤這些追蹤檔的存在時間。例如,當 trace_file 參數指定為 "c:\mytrace" 時,名稱為 "c:\mytrace_123.trc" 的檔案比名稱為 "c:\mytrace_124.trc" 的檔案舊。如果 max_rollover_files 設為 2,SQL Server 便會先刪除 "c:\mytrace_123.trc" 檔,再建立追蹤檔 "c:\mytrace_125.trc"。
請注意,SQL Server 只會嘗試刪除各個檔案一次,且無法刪除有其他程序在使用的檔案。因此,如果您在進行追蹤時,有另一個應用程式在使用追蹤檔,SQL Server 會將這些追蹤檔保留在檔案系統中。
傳回碼值
下表描述在預存程序完成之後,使用者可能得到的代碼值。
傳回碼 | 描述 |
---|---|
0 |
沒有錯誤。 |
1 |
未知的錯誤。 |
10 |
無效的選項。當指定的選項不相容時,便傳回這個代碼。 |
12 |
未建立檔案。 |
13 |
記憶體用完。當沒有足夠的記憶體可以執行指定的動作時,便傳回這個代碼。 |
14 |
無效停止時間。當指定的停止時間已發生過時,便傳回這個代碼。 |
15 |
無效的參數。當使用者提供不相容的參數時,便傳回這個代碼。 |
備註
sp_trace_create 是一個 SQL Server 2005 預存程序,它會執行先前舊版 SQL Server 提供的 xp_trace_* 擴充預存程序所執行的許多動作。請用 sp_trace_create 來取代下列各項:
- xp_trace_addnewqueue
- xp_trace_setqueuecreateinfo
- xp_trace_setqueuedestination
sp_trace_create 只會建立追蹤定義。您無法利用這個預存程序來啟動或變更追蹤。
所有 SQL 追蹤預存程序 (sp_trace_xx) 的參數都具備嚴格的類型。如果沒有依照引數描述所指定,以正確的輸入參數資料類型來呼叫這些參數,預存程序會傳回錯誤。
對於 sp_trace_create,SQL Server 服務帳戶必須有追蹤檔資料夾的寫入權限。如果 SQL Server 服務帳戶不是追蹤檔所在電腦的管理員,您就必須將寫入權限明確授與 SQL Server 服務帳戶。
附註: |
---|
您可以利用 fn_trace_gettable 系統函數,將 sp_trace_create 所建立的追蹤檔自動載入資料表中。如需有關如何使用這個系統函數的詳細資訊,請參閱<fn_trace_gettable (Transact-SQL)>。 |
權限
使用者必須有 ALTER TRACE 權限。
請參閱
參考
sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)