創(chuàng)建跟蹤定義。新的跟蹤將處于停止?fàn)顟B(tài)。
sp_trace_create [ @traceid = ] trace_id OUTPUT
, [ @options = ] option_value
, [ @tracefile = ] 'trace_file'
[ , [ @maxfilesize = ] max_file_size ]
[ , [ @stoptime = ] 'stop_time' ]
[ @traceid = ] trace_id
是 Microsoft® SQL Server™ 2000 分配給新跟蹤的編號(hào)。將忽略任何用戶提供的輸入。trace_id 的數(shù)據(jù)類型為 int,默認(rèn)設(shè)置為 NULL。用戶使用 trace_id 值識(shí)別、修改并控制存儲(chǔ)過(guò)程所定義的跟蹤。
[ @options = ] option_value
指定為跟蹤設(shè)置的選項(xiàng)。option_value 的數(shù)據(jù)類型為 int,沒(méi)有默認(rèn)設(shè)置。用戶可以通過(guò)指定所選出的選項(xiàng)的和值選擇這些選項(xiàng)的組合。例如,若要打開 TRACE_FILE_ROLLOVER 和 SHUTDOWN_ON_ERROR 選項(xiàng),請(qǐng)指定 option_value 為 6。
下表列出了選項(xiàng)、說(shuō)明和選項(xiàng)值。
選項(xiàng)名 | 選項(xiàng)值 | 描述 |
---|---|---|
TRACE_PRODUCE_ROWSET | 1 | 指定跟蹤將生成行集。 |
TRACE_FILE_ROLLOVER | 2 | 指定當(dāng)達(dá)到 max_file_size 時(shí),將關(guān)閉當(dāng)前跟蹤文件并創(chuàng)建新文件。所有新記錄都將寫入新文件。新文件將與前一個(gè)文件同名,但是在文件名后將附加一個(gè)整數(shù)以表示其序列。例如,如果命名原始跟蹤文件為 filename.trc,則命名下個(gè)跟蹤文件為 filename_1.trc,命名再下一個(gè)跟蹤文件為 filename_2.trc,等等。 隨著創(chuàng)建了更多的翻轉(zhuǎn)跟蹤文件,附加到文件名的整數(shù)值繼續(xù)增加。 如果指定該選項(xiàng)時(shí)未指定 max_file_size 的值,則 SQL Server 使用 max_file_size 的默認(rèn)值 (5 MB)。 |
SHUTDOWN_ON_ERROR | 4 | 指定無(wú)論任何原因,如果不能將跟蹤寫入文件,則 SQL Server 將關(guān)閉。執(zhí)行安全審核跟蹤時(shí),該選項(xiàng)很有用。 |
TRACE_PRODUCE_BLACKBOX | 8 | 指定服務(wù)器產(chǎn)生的最后 5 MB 跟蹤信息記錄將由服務(wù)器保存。TRACE_PRODUCE_BLACKBOX 與所有其它選項(xiàng)不兼容。 |
[ @tracefile = ] 'trace_file'
指定跟蹤將寫入的位置和文件名。trace_file 的數(shù)據(jù)類型為 nvarchar (245),沒(méi)有默認(rèn)設(shè)置。trace_file 可以是本地目錄(如 N 'C:\MSSQL\Trace\trace.trc'),也可以是到共享或路徑 (N'\\Servername\Sharename\Directory\trace.trc') 的 UNC。
SQL Server 會(huì)將 .trc 擴(kuò)展名附加到所有的跟蹤文件名。如果已指定 TRACE_FILE_ROLLOVER 選項(xiàng)和 max_file_size,則當(dāng)原始跟蹤文件增長(zhǎng)到其最大值時(shí),SQL Server 將創(chuàng)建新的跟蹤文件。新文件與原始文件同名,但是在其后附加 _n 以表示它的序列,序列從 1 開始。例如,如果第一個(gè)跟蹤文件名為 filename.trc,則命名第二個(gè)跟蹤文件為 filename_1.trc。
在使用 TRACE_PRODUCE_BLACKBOX 選項(xiàng)時(shí)無(wú)法指定 trace_file。
[ @maxfilesize = ] max_file_size
指定跟蹤文件可以增長(zhǎng)到的最大文件大小(以 MB 為單位)。max_file_size 的數(shù)據(jù)類型為 bigint,默認(rèn)設(shè)置為 5。
如果指定該參數(shù)時(shí)未帶有 TRACE_FILE_ROLLOVER 選項(xiàng),則當(dāng)使用的磁盤空間超過(guò) max_file_size 所指定的空間量時(shí)跟蹤停止對(duì)文件的記錄。
[ @stoptime = ] 'stop_time'
指定將停止跟蹤文件的日期和時(shí)間。stop_time 的數(shù)據(jù)類型為 datetime,默認(rèn)設(shè)置為 NULL。如果為 NULL,則跟蹤將一直運(yùn)行,直到手動(dòng)地停止它或服務(wù)器關(guān)閉。
如果同時(shí)指定 stop_time 和 max_file_size,但不指定 TRACE_FILE_ROLLOVER,則當(dāng)達(dá)到指定停止時(shí)間或最大文件大小時(shí)跟蹤將停止。如果同時(shí)指定了 stop_time、max_file_size 和 TRACE_FILE_ROLLOVER,并假設(shè)跟蹤未填滿驅(qū)動(dòng)器,則跟蹤將在指定停止時(shí)間停止。
下表描述在存儲(chǔ)過(guò)程完成之后用戶可能獲得的代碼值。
返回代碼 | 描述 |
---|---|
0 | 沒(méi)有錯(cuò)誤。 |
1 | 未知錯(cuò)誤。 |
10 | 無(wú)效選項(xiàng)。指定的選項(xiàng)不兼容時(shí)返回。 |
12 | 文件未創(chuàng)建。 |
13 | 內(nèi)存不足。在沒(méi)有足夠內(nèi)存執(zhí)行指定的操作時(shí)返回此代碼。 |
14 | 無(wú)效停止時(shí)間。在指定的停止時(shí)間已發(fā)生時(shí)返回此代碼。 |
15 | 參數(shù)無(wú)效。在用戶已提供不兼容的參數(shù)時(shí)返回此代碼。 |
sp_trace_create 是一個(gè) Microsoft SQL Server 2000 存儲(chǔ)過(guò)程,它執(zhí)行以前由 SQL Server 早期版本中使用的 xp_trace_* 擴(kuò)展存儲(chǔ)過(guò)程執(zhí)行的許多操作。使用 sp_trace_create,而不使用:
sp_trace_create 只創(chuàng)建跟蹤定義。該存儲(chǔ)過(guò)程不能用于啟動(dòng)或更改跟蹤。
嚴(yán)格地鍵入所有 SQL 跟蹤存儲(chǔ)過(guò)程 (sp_trace_xx) 的參數(shù)。如果沒(méi)有用正確的輸入?yún)?shù)數(shù)據(jù)類型(與在參數(shù)說(shuō)明中指定的相同)調(diào)用這些參數(shù),則存儲(chǔ)過(guò)程將返回錯(cuò)誤。
只有 sysadmin 固定服務(wù)器角色成員才能執(zhí)行 sp_trace_create。