分享方式:


篩選追蹤

適用於:SQL Server

篩選可限制追蹤中收集的事件。 如果沒有設定篩選條件,則選定事件類別的所有事件都會傳回到追蹤輸出。 例如,限制追蹤裡的 Windows 使用者名稱為特定使用者,可將輸出資料縮小為只有這些使用者。

替追蹤設定篩選並非強制的。 不過,篩選可以讓追蹤期間造成的負擔降到最低。 篩選會傳回特別關注的資料,而讓效能分析和稽核都變得比較容易。

若要篩選追蹤內擷取的事件資料,請選取追蹤事件條件,以便只傳回追蹤裡的相關資料。 例如,您可以從追蹤包含或排除監視特定應用程式的活動。

注意

當 SQL Server Profiler 建立追蹤時,預設會篩選出它自己的活動。

舉另一個例子說明,如果您要監視查詢以判斷花費最長時間執行的批次,可將追蹤事件條件設定為只監視花費超過 30 秒鐘執行的批次 (亦即 CPU 最小值 30,000 毫秒)。

篩選建立指導方針

一般而言,可依照下列步驟篩選追蹤。

  1. 識別您要在追蹤內包含的事件。
  2. 識別包含所需資訊的資料與資料行。
  3. 識別所需資料的子集,並且根據資料子集定義篩選。

例如,您可能只對花費超過某個長度時間的事件有興趣。 可以建立一個包含事件的追蹤,其中 Duration 資料行是大於 300 毫秒。 您的追蹤不會包含 300 毫秒內完成的事件。

您可以使用 SQL Server Profiler 或 Transact-SQL 預存程序來建立篩選。

篩選追蹤範本中的事件

修改篩選

篩選的可用性視資料行而定。 部份資料行無法篩選。 可篩選的資料行只能由特定關聯式運算子進行篩選,如下表所示。

關聯式運算子 運算子符號 Description
Like LIKE 指定追蹤事件資料必須和輸入的文字相似。 允許多值。
不相似 NOT LIKE 指定追蹤事件資料絕對必須和輸入的文字不相似。 允許多值。
等於 = 指定追蹤事件資料必須和輸入的值相等。 允許多值。
不等於 <> 指定追蹤事件資料絕對必須和輸入的值不相等。 允許多值。
大於 > 指定追蹤事件資料必須大於輸入的值。
大於或等於 >= 指定追蹤事件資料必須大於或等於輸入的值。
小於 < 指定追蹤事件資料必須小於輸入的值。
小於或等於 <= 指定追蹤事件資料必須小於或等於輸入的值。

下表列出可篩選的資料行與可用的關聯式運算子。

資料行 關聯式運算子
ApplicationName LIKENOT LIKE
BigintData1 =<>>=<=
BigintData2 =<>>=<=
BinaryData 使用 SQL Server Profiler 來篩選此資料行中的事件。 如需詳細資訊,請參閱使用 SQL Server Profiler 篩選追蹤
ClientProcessID =<>>=<=
ColumnPermissions =<>>=<=
CPU =<>>=<=
DatabaseID =<>>=<=
DatabaseName LIKENOT LIKE
DBUserName LIKENOT LIKE
Duration =<>>=<=
EndTime >=<=
Error =<>>=<=
EventSubClass =<>>=<=
FileName LIKENOT LIKE
GUID 使用 SQL Server Profiler 來篩選此資料行中的事件。 如需詳細資訊,請參閱使用 SQL Server Profiler 篩選追蹤
Handle =<>>=<=
HostName LIKENOT LIKE
IndexID =<>>=<=
IntegerData =<>>=<=
IntegerData2 =<>>=<=
IsSystem =<>>=<=
LineNumber =<>>=<=
LinkedServerName LIKENOT LIKE
LoginName LIKENOT LIKE
LoginSid 使用 SQL Server Profiler 來篩選此資料行中的事件。 如需詳細資訊,請參閱使用 SQL Server Profiler 篩選追蹤
MethodName LIKENOT LIKE
Mode =<>>=<=
NestLevel =<>>=<=
NTDomainName LIKENOT LIKE
NTUserName LIKENOT LIKE
ObjectID =<>>=<=
ObjectID2 =<>>=<=
ObjectName LIKENOT LIKE
ObjectType =<>>=<=
Offset =<>>=<=
OwnerID =<>>=<=
OwnerName LIKENOT LIKE
ParentName LIKENOT LIKE
Permissions =<>>=<=
ProviderName LIKENOT LIKE
Reads =<>>=<=
RequestID =<>>=<=
RoleName LIKENOT LIKE
RowCounts =<>>=<=
SessionLoginName LIKENOT LIKE
Severity =<>>=<=
SourceDatabaseID =<>>=<=
SPID =<>>=<=
SqlHandle 使用 SQL Server Profiler 來篩選此資料行中的事件。 如需詳細資訊,請參閱使用 SQL Server Profiler 篩選追蹤
StartTime >=<=
State =<>>=<=
Success =<>>=<=
TargetLoginName LIKENOT LIKE
TargetLoginSid 使用 SQL Server Profiler 來篩選此資料行中的事件。 如需詳細資訊,請參閱使用 SQL Server Profiler 篩選追蹤
TargetUserName LIKENOT LIKE
TextData 1 LIKENOT LIKE
TransactionID =<>>=<=
Type =<>>=<=
Writes =<>>=<=
XactSequence =<>>=<=

1 如果從 osql 公用程式或 sqlcmd 公用程式追蹤事件,篩選 % 資料行時一律附加 TextData

基於安全機制,「SQL 追蹤」會自動把任何與安全性相關、會影響密碼的預存程序的資訊從追蹤省略。 此安全機制無法設定,也永遠有效。 如此可預防有權限追蹤 SQL Server 上所有活動的使用者擷取到密碼。

下列與安全性相關的預存程序會受到監視,但是不會將輸出寫入 TextData 資料行: