トレースへのフィルターの適用

適用対象:SQL Server

フィルターを使用すると、トレースに出力するイベントを制限することができます。 フィルターが設定されていない場合は、選択したイベント クラスのすべてのイベントがトレースに出力されます。 たとえば、トレースに出力する Windows ユーザーとして特定のユーザー名を指定すると、それらのユーザーのデータのみが出力されます。

トレースのフィルター設定は必須ではありません。 ただし、フィルターを設定すると、トレース中に発生するオーバーヘッドを低減できます。 フィルターによって、データを絞り込むことができ、パフォーマンス分析および監査が簡略化されます。

トレースに出力するイベント データを制限するには、必要なデータだけがトレースに記録されるようにイベントのトレース条件を選択します。 たとえば、特定のアプリケーションの動作状況をトレースの対象としたり、トレースから除外したりできます。

注意

SQL Server Profilerがトレースを作成する際、既定では、この Profiler 自身の動作状況はトレースから除外されます。

たとえば、クエリを監視して、実行に長時間かかるバッチを調べる場合、イベントのトレース条件を設定することで、実行時間が 30 秒を超えるバッチだけを監視できます (CPU 時間の最小値は 30,000 ミリ秒です)。

フィルター作成のガイドライン

トレースにフィルターを適用するには、次の手順を実行します。

  1. トレースの対象とするイベントを決めます。

  2. 必要な情報を保存するデータおよびデータ列を決めます。

  3. 必要なデータのサブセットを決め、そのデータのサブセットに基づいてフィルターを設定します。

たとえば、ある一定の時間よりも長くかかるイベントをトレースで出力するとします。 その場合、 Duration データ列が 300 ミリ秒よりも長いイベントを出力するトレースを作成できます。 300 ミリ秒以内に完了したイベントはトレースから除外されます。

フィルターは、SQL Server Profiler または Transact-SQL ストアド プロシージャを使用して作成できます。

トレース テンプレートを使用してイベントにフィルターを適用するには

トレース内のイベントへのフィルターの適用 (SQL Server Profiler)

トレース フィルターの設定 (Transact-SQL)

フィルターを変更するには

フィルターの変更 (SQL Server Profiler)

フィルターを適用できるかどうかは、データ列によって異なります。 一部のデータ列にはフィルターを適用できません。 フィルターの適用が可能なデータ列では、次の表に示す関係演算子を使用してフィルターを指定できます。

関係演算子 演算子記号 説明
Like LIKE イベントのトレース データが入力したテキストと同じでなければならないことを指定します。 複数の値を指定できます。
パターンに一致しない NOT LIKE イベントのトレース データが入力したテキストと同じであってはならないことを指定します。 複数の値を指定できます。
次の値に等しい = イベントのトレース データが入力した値と等しくなければならないことを指定します。 複数の値を指定できます。
等しくない <> イベントのトレース データが入力した値と等しくあってはならないことを指定します。 複数の値を指定できます。
より大きい > イベントのトレース データが入力した値よりも大きくなければならないことを指定します。
以上 >= イベントのトレース データが入力した値以上でなければならないことを指定します。
より小さい < イベントのトレース データが入力した値よりも小さくなければならないことを指定します。
以下 <= イベントのトレース データが入力した値以下でなければならないことを指定します。

次の表は、フィルターを適用できるデータ列と利用可能な関係演算子の一覧です。

データ列 関係演算子
ApplicationName LIKE、NOT LIKE
BigintData1 =, <>, >=, <=
BigintData2 =, <>, >=, <=
BinaryData SQL Server Profiler を使用して、このデータ列のイベントをフィルタリングします。 詳細については、「 SQL Server Profiler でのトレースへのフィルターの適用」を参照してください。
ClientProcessID =, <>, >=, <=
ColumnPermissions =, <>, >=, <=
CPU =, <>, >=, <=
DatabaseID =, <>, >=, <=
DatabaseName LIKE、NOT LIKE
DBUserName LIKE、NOT LIKE
Duration =, <>, >=, <=
EndTime >=, <=
エラー =, <>, >=, <=
EventSubClass =, <>, >=, <=
FileName LIKE、NOT LIKE
GUID SQL Server Profiler を使用して、このデータ列のイベントをフィルタリングします。 詳細については、「 SQL Server Profiler でのトレースへのフィルターの適用」を参照してください。
Handle =, <>, >=, <=
HostName LIKE、NOT LIKE
IndexID =, <>, >=, <=
IntegerData =, <>, >=, <=
IntegerData2 =, <>, >=, <=
IsSystem =, <>, >=, <=
LineNumber =, <>, >=, <=
LinkedServerName LIKE、NOT LIKE
LoginName LIKE、NOT LIKE
LoginSid SQL Server Profiler を使用して、このデータ列のイベントをフィルタリングします。 詳細については、「 SQL Server Profiler でのトレースへのフィルターの適用」を参照してください。
MethodName LIKE、NOT LIKE
モード =, <>, >=, <=
NestLevel =, <>, >=, <=
NTDomainName LIKE、NOT LIKE
NTUserName LIKE、NOT LIKE
Exchange Spill =, <>, >=, <=
ObjectID2 =, <>, >=, <=
ObjectName LIKE、NOT LIKE
ObjectType =, <>, >=, <=
Offset =, <>, >=, <=
OwnerID =, <>, >=, <=
OwnerName LIKE、NOT LIKE
ParentName LIKE、NOT LIKE
アクセス許可 =, <>, >=, <=
ProviderName LIKE、NOT LIKE
Reads =, <>, >=, <=
RequestID =, <>, >=, <=
RoleName LIKE、NOT LIKE
RowCounts =, <>, >=, <=
SessionLoginName LIKE、NOT LIKE
重大度 =, <>, >=, <=
SourceDatabaseID =, <>, >=, <=
SPID =, <>, >=, <=
SqlHandle SQL Server Profiler を使用して、このデータ列のイベントをフィルタリングします。 詳細については、「 SQL Server Profiler でのトレースへのフィルターの適用」を参照してください。
StartTime >=, <=
State =, <>, >=, <=
Success =, <>, >=, <=
TargetLoginName LIKE、NOT LIKE
TargetLoginSid SQL Server Profiler を使用して、このデータ列のイベントをフィルタリングします。 詳細については、「 SQL Server Profiler でのトレースへのフィルターの適用」を参照してください。
TargetUserName LIKE、NOT LIKE
TextData * LIKE、NOT LIKE
TransactionID =, <>, >=, <=
Type =, <>, >=, <=
Writes =, <>, >=, <=
XactSequence =, <>, >=, <=

*osql ユーティリティまたは sqlcmd ユーティリティからイベントをトレースしている場合は必ず、%TextData データ列のフィルターに付加します。

セキュリティ対策として、SQL トレースは、パスワードに影響を与えるセキュリティ関連ストアド プロシージャの情報をトレースの対象から自動的に除外します。 このセキュリティ メカニズムは変更不可能で、常に有効な状態になっています。 これにより、 SQL Server上でのすべての動作状況をトレースする権限を持たないユーザーがパスワードを取得するのを防ぎます。

監視されるのは次のセキュリティ関連ストアド プロシージャですが、 TextData データ列には出力されません。

sp_addapprole (Transact-SQL)

sp_adddistpublisher (Transact-SQL)

sp_adddistributiondb (Transact-SQL)

sp_adddistributor (Transact-SQL)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_addlogin (Transact-SQL)

sp_addmergepullsubscription_agent (Transact-SQL)

sp_addpullsubscription_agent (Transact-SQL)

sp_addremotelogin (Transact-SQL)

sp_addsubscriber (Transact-SQL)

sp_approlepassword (Transact-SQL)

sp_changedistpublisher (Transact-SQL)

sp_changesubscriber (Transact-SQL)

sp_dsninfo (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

sp_link_publication (Transact-SQL)

sp_password (Transact-SQL)

sp_setapprole (Transact-SQL)