sp_trace_create (Transact-SQL)
適用対象:SQL Server
トレース定義を作成します。 新しいトレースは停止状態です。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに拡張イベントを使用します。
構文
sp_trace_create
[ @traceid = ] traceid OUTPUT
, [ @options = ] options
, [ @tracefile = ] N'tracefile'
[ , [ @maxfilesize = ] maxfilesize ]
[ , [ @stoptime = ] 'stoptime' ]
[ , [ @filecount = ] filecount ]
[ ; ]
引数
[ @traceid = ] traceid OUTPUT
新しいトレースに SQL Server によって割り当てられた番号。 ユーザー指定の入力は無視されます。 @traceidは int 型の OUTPUT パラメーターで、既定値は NULL
. ユーザーは、@traceid値を使用して、このストアド プロシージャによって定義されたトレースを識別、変更、および制御します。
[ @options = ] オプション
トレースのオプション セットを指定します。 @optionsは int で、既定値はありません。 ユーザーは複数のオプションの組み合わせを選択することもできます。これにはオプションの合計値を指定します。 たとえば、オプションTRACE_FILE_ROLLOVER
の両方をオンにするには、SHUTDOWN_ON_ERROR
@optionsに指定6
します。
次の表に、オプション、説明、およびその値を示します。
オプション名 | オプションの値 | 説明 |
---|---|---|
TRACE_FILE_ROLLOVER |
2 |
@filecountに達すると、現在のトレース ファイルが閉じられ、新しいファイルが作成されることを指定します。 すべての新しいレコードが新しいファイルに書き込まれます。 新しいファイルの名前は前のファイルと同じですが、シーケンスを示す整数が追加されます。 たとえば、元のトレース ファイルに名前が付けられている filename.trc 場合は、次のトレース ファイルに名前が付けられ filename_1.trc 、次のトレース ファイルは filename_2.trc 次のようになります。追加のロールオーバー トレース ファイルが作成されると、ファイル名に追加される整数値が順番に増加します。 SQL Server では、@filecountの値を指定せずにこのオプションを指定した場合、@filecount (5 MB (メガバイト)) の既定値が使用されます。 |
SHUTDOWN_ON_ERROR |
4 |
何らかの理由でトレースをファイルに書き込むことができない場合、SQL Server がシャットダウンすることを指定します。 このオプションは、セキュリティ監査トレースを実行するときに役立ちます。 |
TRACE_PRODUCE_BLACKBOX |
8 |
サーバーによって生成されたトレース情報の最後の 5 MB (メガバイト)のレコードをサーバーによって保存することを指定します。 TRACE_PRODUCE_BLACKBOX は、他のすべてのオプションと互換性がありません。 |
[ @tracefile = ] N'tracefile'
トレースの書き込み先となる場所とファイル名を指定します。 @tracefileは nvarchar(245) で、既定値はありません。 @tracefileには、ローカル ディレクトリ (などN'C:\MSSQL\Trace\trace.trc'
) または共有またはパスへの UNC (などN'\\<servername>\<sharename>\<directory>\trace.trc'
) を指定できます。
SQL Server では、 .trc
すべてのトレース ファイル名に拡張機能が追加されます。 TRACE_FILE_ROLLOVER
オプションと@filecountが指定されている場合、元のトレース ファイルが最大サイズに達すると、SQL Server によって新しいトレース ファイルが作成されます。 新しいファイルには元のファイルと同じ名前が付けられますが、_n はシーケンスを示すために追加され、次で始まります 1
。 たとえば、最初のトレース ファイルの名前が指定 filename.trc
されている場合、2 番目のトレース ファイルの名前 filename_1.trc
が指定されます。
このオプションを使用する TRACE_FILE_ROLLOVER
場合は、元のトレース ファイル名にアンダースコア文字を使用しないことをお勧めします。 アンダースコアを使用すると、次の動作が発生します。
SQL Server プロファイラーは、ロールオーバー ファイルを自動的に読み込んだり、ロールオーバー ファイルの読み込みを求めたりすることはありません (これらのファイル ロールオーバー オプションのいずれかが構成されている場合)。
sys.fn_trace_gettable関数では、元のファイル名がアンダースコアと数値で終わるロールオーバー ファイル (@number_files引数を使用して指定した場合) は読み込まれません。 (これは、ファイルのロール オーバー時に自動的に追加されるアンダースコアと数字には適用されません)。
Note
このような動作に対処するには、元のファイル名のアンダースコアを削除してトレース ファイルの名前を変更します。 たとえば、元のファイルに名前が付けられmy_trace.trc
、ロールオーバー ファイルに名前が付けられているmy_trace_1.trc
場合は、SQL Server プロファイラーでファイルmytrace_1.trc
mytrace.trc
を開く前にファイルの名前を変更できます。
オプションを使用する場合、@tracefileはTRACE_PRODUCE_BLACKBOX
指定できません。
[ @maxfilesize = ] maxfilesize
トレース ファイルの最大サイズを MB 単位で指定します。 @maxfilesizeは bigint で、既定値は 5
.
このパラメーターをオプションなしで TRACE_FILE_ROLLOVER
指定した場合、使用されるディスク領域が@maxfilesizeで 指定された量を超えると、トレースはファイルへの記録を停止します。
[ @stoptime = ] 'stoptime'
トレースを停止する日時を指定します。 @stoptimeは datetime で、既定値は NULL
. 場合 NULL
、トレースは手動で停止するか、サーバーがシャットダウンするまで実行されます。
@stoptimeと@maxfilesizeの両方が指定されTRACE_FILE_ROLLOVER
、指定されていない場合は、指定した停止時間または最大ファイル サイズに達したときにトレースが最上位になります。 @stoptime、@maxfilesize、およびTRACE_FILE_ROLLOVER
指定されている場合、トレースは、トレースがドライブを満たしていないと仮定して、指定した停止時刻に停止します。
[ @filecount = ] 'filecount'
同じ基本ファイル名で保持するトレース ファイルの最大数を指定します。 @filecountは int より大きい1
です。 このパラメーターは、オプションが TRACE_FILE_ROLLOVER
指定されている場合にのみ有効です。 @filecountを指定すると、SQL Server は、新しいトレース ファイルを開く前に最も古いトレース ファイルを削除することで、@filecountトレース ファイル以下のメインを保持しようとします。 SQL Server では、基本ファイル名に数値を追加することで、トレース ファイルの有効期間を追跡します。
たとえば、@tracefile パラメーターを次のようにC:\mytrace
指定すると、名前の付いたファイルが、名前C:\mytrace_123.trc
を持つC:\mytrace_124.trc
ファイルよりも古くなります。 @filecountが設定されている場合、SQL Server はトレース ファイルC:\mytrace_123.trc
を作成する前にファイルC:\mytrace_125.trc
を削除2
します。
SQL Server は各ファイルの削除を 1 回だけ試行し、別のプロセスで使用されているファイルを削除することはできません。 そのため、トレースの実行中に別のアプリケーションがトレース ファイルを操作している場合、SQL Server によってこれらのトレース ファイルがファイル システムに残される可能性があります。
リターン コードの値
次の表は、このストアド プロシージャの完了時に返されるコード値を示しています。
リターン コード | 説明 |
---|---|
0 |
エラーなし。 |
1 |
不明なエラー。 |
10 |
無効なオプションです。 指定したオプションが一致しない場合に返されます。 |
12 |
ファイルが作成されていない。 |
13 |
メモリが不足しています。 指定されたアクションを実行するのに十分なメモリがない場合に返されます。 |
14 |
停止時間が無効です。 指定された停止時間が既に発生したときに返されます。 |
15 |
パラメーターが無効。 ユーザーが互換性のないパラメーターを指定したときに返されます。 |
解説
sp_trace_create
は、以前のバージョンの SQL Server で使用できる拡張ストアド プロシージャによって xp_trace_*
以前に実行されたアクションの多くを実行する SQL Server ストアド プロシージャです。 次の代わりに使用 sp_trace_create
します。
xp_trace_addnewqueue
xp_trace_setqueuecreateinfo
xp_trace_setqueuedestination
sp_trace_create
トレース定義のみが作成されます。 このストアド プロシージャを使用してトレースを開始または変更することはできません。
すべての SQL トレース ストアド プロシージャ (sp_trace_*
) のパラメーターは厳密に型指定されます。 これらのパラメーターが、引数の説明で指定されている正しいデータ型で呼び出されないと、このストアド プロシージャではエラーが返されます。
の場合 sp_trace_create
、SQL Server サービス アカウントには 、トレース ファイル フォルダーに対する書き込み アクセス許可が必要です。 SQL Server サービス アカウントがトレース ファイルが配置されているコンピューターの管理者でない場合は、SQL Server サービス アカウントに書き込みアクセス許可を明示的に付与する必要があります。
Note
システム関数を使用して、作成 sp_trace_create
したトレース ファイルをテーブルに自動的に fn_trace_gettable
読み込むことができます。 詳細については、「sys.fn_trace_gettable」を参照してください。
トレース ストアド プロシージャを使用した例については、「トレースの作成 (Transact-SQL)」を参照してください。
TRACE_PRODUCE_BLACKBOX
には、次の特性があります。
ロールオーバー トレースです。 既定の@filecountは 2 ですが、@filecount オプションを使用してユーザーによってオーバーライドできます。
他のトレースと同様に、既定の@maxfilesizeは 5 MB (メガバイト)であり、変更できます。
ファイル名を指定できません。 ファイルは次
N'%SQLDIR%\MSSQL\DATA\blackbox.trc'
のように保存されます。トレースには、次のイベントとその列のみが含まれます。
- RPC の開始
- バッチ開始
- Exception
- アテンション
イベントまたは列は、このトレースに対して追加または削除できません。
このトレースにはフィルターを指定できません。
アクセス許可
ALTER TRACE 権限が必要です。
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示