篩選追蹤
適用於:SQL Server
篩選可限制追蹤中收集的事件。 如果沒有設定篩選條件,則選定事件類別的所有事件都會傳回到追蹤輸出。 例如,限制追蹤裡的 Windows 使用者名稱為特定使用者,可將輸出資料縮小為只有這些使用者。
替追蹤設定篩選並非強制的。 不過,篩選可以讓追蹤期間造成的負擔降到最低。 篩選會傳回特別關注的資料,而讓效能分析和稽核都變得比較容易。
若要篩選追蹤內擷取的事件資料,請選取追蹤事件條件,以便只傳回追蹤裡的相關資料。 例如,您可以從追蹤包含或排除監視特定應用程式的活動。
注意
當 SQL Server Profiler 建立追蹤時,預設會篩選出它自己的活動。
舉另一個例子說明,如果您要監視查詢以判斷花費最長時間執行的批次,可將追蹤事件條件設定為只監視花費超過 30 秒鐘執行的批次 (亦即 CPU 最小值 30,000 毫秒)。
篩選建立指導方針
一般而言,可依照下列步驟篩選追蹤。
- 識別您要在追蹤內包含的事件。
- 識別包含所需資訊的資料與資料行。
- 識別所需資料的子集,並且根據資料子集定義篩選。
例如,您可能只對花費超過某個長度時間的事件有興趣。 可以建立一個包含事件的追蹤,其中 Duration
資料行是大於 300 毫秒。 您的追蹤不會包含 300 毫秒內完成的事件。
您可以使用 SQL Server Profiler 或 Transact-SQL 預存程序來建立篩選。
篩選追蹤範本中的事件
修改篩選
篩選的可用性視資料行而定。 部份資料行無法篩選。 可篩選的資料行只能由特定關聯式運算子進行篩選,如下表所示。
關聯式運算子 | 運算子符號 | Description |
---|---|---|
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 |
>= 、<= |
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 |
TextData 1 |
LIKE 、NOT LIKE |
TransactionID |
= 、<> 、>= 、<= |
Type |
= 、<> 、>= 、<= |
Writes |
= 、<> 、>= 、<= |
XactSequence |
= 、<> 、>= 、<= |
1 如果從 osql 公用程式或 sqlcmd 公用程式追蹤事件,篩選 %
資料行時一律附加 TextData
。
基於安全機制,「SQL 追蹤」會自動把任何與安全性相關、會影響密碼的預存程序的資訊從追蹤省略。 此安全機制無法設定,也永遠有效。 如此可預防有權限追蹤 SQL Server 上所有活動的使用者擷取到密碼。
下列與安全性相關的預存程序會受到監視,但是不會將輸出寫入 TextData
資料行:
- sp_addapprole
- sp_adddistpublisher
- sp_adddistributiondb
- sp_adddistributor
- sp_addlinkedserver
- sp_addlinkedsrvlogin
- sp_addlogin
- sp_addmergepullsubscription_agent
- sp_addpullsubscription_agent
- sp_addremotelogin
- sp_addsubscriber
- sp_approlepassword
- sp_changedistpublisher
- sp_changesubscriber
- sp_dsninfo
- sp_helpsubscription_properties
- sp_link_publication
- sp_password
- sp_setapprole
相關內容
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: