sp_trace_create (Transact-SQL)

適用対象:SQL Server

トレース定義を作成します。 新しいトレースは停止状態です。

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに拡張イベントを使用します。

Transact-SQL 構文表記規則

構文

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 場合は、元のトレース ファイル名にアンダースコア文字を使用しないことをお勧めします。 アンダースコアを使用すると、次の動作が発生します。

Note

このような動作に対処するには、元のファイル名のアンダースコアを削除してトレース ファイルの名前を変更します。 たとえば、元のファイルに名前が付けられmy_trace.trc、ロールオーバー ファイルに名前が付けられているmy_trace_1.trc場合は、SQL Server プロファイラーでファイルmytrace_1.trcmytrace.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 権限が必要です。