SQL 事件探查器數據列
SQL 事件探查器使您得以在創建模板時選擇數據列。這些數據列表現在運行跟蹤時希望返回的信息。在 SQL 事件探查器中顯示的數據可以按事件發生的順序顯示,也可以按一個數據列或數據列組合分組顯示。
例如,若要識別執行時間最長的用戶事件,請按 DBUserName 和 Duration 對事件進行分組。SQL 事件探查器將顯示每個事件的執行時間。該功能類似於 Transact-SQL 中的 GROUP BY 子句。有關更多信息,請參見 GROUP BY。
說明 不能按 StartTime 或 EndTime 數據列進行分組。
如果 SQL 事件探查器可以連接到捕獲跟蹤數據時所在的 Microsoft® SQL Server™ 實例,則將嘗試用數據庫、對象和索引的名稱分別填充 Database ID、Object ID 和 Index ID 數據列。否則,將顯示標識號 (ID)。
下表描述默認情況下選定的 SQL 事件探查器數據列。
數據列 列號 描述
Application Name1 10 創建與 SQL Server 實例的連接的客戶端應用程序名。 該列由應用程序傳遞的值填充,而不是由所顯示的程序名填充。
Binary Data 2 與在跟蹤中捕獲的事件類相關的二進制值。
ClientProcessID1 9 由主機計算機分配給進程的 ID,在該進程中客戶應用程序正在運行。如果客戶端提供客戶端進程 ID,則填充此數據列。
Column Permissions 44 表明是否已設置了列權限。分析語句文本,以確定將哪些權限應用到了哪些列。
CPU 18 事件所使用的 CPU 時間總計(以毫秒為單位)。
Database ID1 3 USE database 語句所指定的數據庫 ID,如果沒有對給定實例發出過 USE database 語句,則是默認數據庫。如果在跟蹤內捕獲 Server Name 數據列且服務器可用,則 SQL 事件探查器將顯示數據庫名。 通過使用 DB_ID 函數確定數據庫的值。
DatabaseName 35 正在運行用戶語句的數據庫的名稱。
DBUserName1 40 客戶端的 SQL Server 用戶名。
Duration 13 事件所花費的時間總計(以毫秒為單位)。
End Time 15 事件結束時的時間。啟動事件的事件類(如 SQL:BatchStarting 或 SP:Starting)的該列不填充。
Error 31 給定事件的錯誤號。通常是存儲在 sysmessages 中的錯誤號。
EventClass1 27 捕獲的事件類類型。
EventSubClass1 21 事件子類的類型,提供有關每個事件類的進一步信息。例如,Execution Warning 事件類的事件子類值代表執行警告的類型:
1 = 查詢等待。查詢必須等待資源(如內存)才能執行。
2 = 查詢超時。查詢在等待執行所需的資源時超時。所有事件類的該數據列均不填充。
FileName 36 所修改的文件的邏輯名稱。
Handle 33 ODBC、OLE DB 或 DB-Library 所用的整數,用以協調服務器的執行。
Host Name1 8 正運行客戶端的計算機名。如果客戶端提供主機名,則填充此數據列。若要確定主機名,請使用 HOST_NAME 函數。
Index ID 24 受事件影響的對象上的索引 ID。若要確定對象的索引 ID,請使用 sysindexes 系統表的 indid 列。
Integer Data 25 與在跟蹤中捕獲的事件類相關的整型值。
LoginName 11 用戶的登錄名(SQL Server 安全登錄或 Microsoft Windows® 登錄憑據,格式為 DOMAIN\Username)。
LoginSid1 41 登錄用戶的安全標識號 (SID)。可以在 master 數據庫的 sysxlogins 表中找到該信息。對於服務器中的每個登錄,SID 是唯一的。
Mode 32 不同事件所用的整數,用於描述事件已接收或要請求的狀態。
NestLevel 29 表示 @@NESTLEVEL 所返回的數據的整數。
NT Domain Name1 7 用戶所屬的 Microsoft Windows NT® 4.0 或 Windows 2000 域。
NT User Name1 6 Windows NT 4.0 或 Windows 2000 用戶名。
Object ID 22 系統分配的對象 ID。
ObjectName 34 引用的對象名。
ObjectType 28 表示事件中涉及的對象類型的值。該值對應於 sysobjects 中的 type 列。
Owner Name 37 對象所有者的數據庫用戶名稱。
Permissions 19 表示所檢查的權限類型的整型值。取值為:
1 = SELECT ALL
2 = UPDATE ALL
4 = REFERENCES ALL
8 = INSERT
16 = DELETE
32 = EXECUTE(僅限於過程)
4096 = SELECT ANY (至少一列)
8192 = UPDATE ANY
16384 = REFERENCES ANY
Reads 16 服務器代表事件執行的邏輯磁盤讀取數。
RoleName 38 要啟用的應用程序角色名。
Server Name1 26 跟蹤的 SQL Server 實例名。
Severity 20 異常錯誤的嚴重級別。
SPID1 12 SQL Server 指派的與客戶端相關的服務器進程 ID。
Start Time1 14 啟動事件的時間(可用時)。
State 30 等同於錯誤狀態代碼。
Success 23 表示事件是否成功。取值包括:
1 = 成功。
0 = 失敗
例如,1 表示權限檢查成功,0 表示該檢查失敗。
TargetLoginName 42 對於以登錄為目標的操作(例如,添加新登錄),是目標登錄的名稱。
TargetLoginSid 43 對於以目標為登錄的操作(例如,添加新登錄),是目標登錄的 SID。
TargetUserName 39 對於以數據庫用戶為目標的操作(例如授予用戶權限),是該用戶的名稱。
TextData 1 與跟蹤內捕獲的事件類相關的文本值。但是,如果正在跟蹤參數化查詢,則不以 TextData 列中的數據值顯示變量。
Transaction ID 4 系統分配的事務 ID。
Writes 17 服務器代表事件執行的物理磁盤寫入數。
1 默認情況下,為所有事件填充這些數據列。
篩選的定義要根據你的跟蹤目的來定,一般常常會定義的篩選列包括:
1.DatabaseName 同於你要監測的數據庫名(不過這個好像不起作用,我的電腦上設置無效)
2.DatabaseID 同於你要檢測的數據庫的dbid,可以用 select db_id(N'你要監測的庫名')得到dbid
3.ObjectName 同於你要監測的對象名,例如表名,視圖名等
4.ObjectID 同於你要監測的對象的id,可以用 select object_id(N'你要監測的對象名')得到id
5.Error 同於錯誤,如果經常出現某個編號的錯誤,則針對此錯誤號
6.Seccess 同於0,失敗,1,成功,如果是排錯,就過濾掉成功的處理