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

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

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

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

注意注意

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

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

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

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

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

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

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

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

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

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

フィルタを変更するには

フィルタを変更する方法 (SQL Server Profiler)

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

関係演算子

演算子記号

説明

パターンに一致

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

>=, <=

Error

=, <>, >=, <=

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

Mode

=, <>, >=, <=

NestLevel

=, <>, >=, <=

NTDomainName

LIKE、NOT LIKE

NTUserName

LIKE、NOT LIKE

ObjectID

=, <>, >=, <=

ObjectID2

=, <>, >=, <=

ObjectName

LIKE、NOT LIKE

ObjectType

=, <>, >=, <=

Offset

=, <>, >=, <=

OwnerID

=, <>, >=, <=

OwnerName

LIKE、NOT LIKE

ParentName

LIKE、NOT LIKE

Permissions

=, <>, >=, <=

ProviderName

LIKE、NOT LIKE

Reads

=, <>, >=, <=

RequestID

=, <>, >=, <=

RoleName

LIKE、NOT LIKE

RowCounts

=, <>, >=, <=

SessionLoginName

LIKE、NOT LIKE

Severity

=, <>, >=, <=

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

TextData1

LIKE、NOT LIKE

TransactionID

=, <>, >=, <=

Type

=, <>, >=, <=

Writes

=, <>, >=, <=

XactSequence

=, <>, >=, <=

1osql ユーティリティまたは 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)