SQL:StmtRecompile 事件類別
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
SQL:StmtRecompile 事件類別指出所有批次類型所造成的語句層級重新編譯:預存程式、觸發程式、臨機操作批次和查詢。 您可以使用sp_executesql、動態 SQL、準備方法、Execute 方法或類似介面來提交查詢。 應該使用 SQL:StmtRecompile 事件類別,而不是 SP:Recompile 事件類別。
SQL:StmtRecompile 事件類別數據行
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
ApplicationName | nvarchar | 建立 Microsoft SQL Server 實例之連線的用戶端應用程式名稱。 此資料行會填入應用程式所傳遞的值,而不是程序顯示的名稱 | 10 | Yes |
ClientProcessID | int | 主計算機指派給執行用戶端應用程式的進程標識碼。 如果用戶端提供進程識別碼,就會填入此數據行。 | 9 | Yes |
DatabaseID | int | 預存程式執行所在的資料庫識別碼。 請使用 DB_ID 函數判斷資料庫的值。 | 3 | Yes |
DatabaseName | nvarchar | 執行預存程式的資料庫名稱。 | 35 | Yes |
EventSequence | int | 要求內的事件序列。 | 51 | No |
EventSubClass | int | 描述重新編譯的原因: 1 = 架構已變更 2 = 統計數據已變更 3 = 延遲編譯 4 = 已變更設定選項 5 = 臨時表已變更 6 = 遠端數據列集已變更 7 = 已變更瀏覽許可權 8 = 查詢通知環境已變更 9 = 資料分割檢視已變更 10 = 資料指標選項已變更 11 = 要求的選項(重新編譯) |
21 | Yes |
GroupID | int | SQL 追蹤事件引發之工作負載群組的標識碼。 | 66 | Yes |
HostName | nvarchar | 執行此語句之用戶端所在的計算機名稱。 如果用戶端提供主機名,則會填入此數據行。 若要判斷主機名稱,請使用 HOST_NAME 函數。 | 8 | Yes |
IntegerData2 | int | 導致重新編譯之預存程式或批次內的語句結束位移。 如果語句是其批次中的最後一個語句,則結束位移為 -1。 | 55 | Yes |
IsSystem | int | 指出事件發生在系統進程或用戶進程上。 1 = 系統 0 = 使用者 |
60 | Yes |
LineNumber | int | 如果適用,此語句在批次中的序號。 | 5 | Yes |
LoginName | nvarchar | 提交此批次的登入名稱。 | 11 | Yes |
LoginSid | image | 目前登入使用者的安全性標識碼(SID)。 您可以在sys.server_principals目錄檢視中找到此資訊。 每一個 SID 對於伺服器中的每個登入而言都是唯一的。 | 41 | Yes |
NestLevel | int | 預存過程調用的巢狀層級。 例如,my_proc_a預存過程調用my_proc_b。 在此情況下,my_proc_a的 NestLevel 為 1,my_proc_b NestLevel 為 2。 | 29 | Yes |
NTDomainName | nvarchar | 用戶所屬的 Windows 網域。 | 7 | Yes |
NTUserName | nvarchar | 已連線使用者的 Windows 用戶名稱。 | 6 | Yes |
ObjectID | int | 對象的系統指派標識符,其中包含導致重新編譯的語句。 這個物件可以是預存程式、觸發程式或使用者定義函數。 針對特定批次或備妥的 SQL,ObjectID 和 ObjectName 會傳回 NULL 值。 | 22 | Yes |
ObjectName | nvarchar | ObjectID 所識別的物件名稱。 | 34 | Yes |
ObjectType | int | 值,表示事件中涉及的物件類型。 如需詳細資訊,請參閱 ObjectType 追蹤事件數據行。 | 28 | Yes |
Offset | int | 在導致重新編譯的預存程式或批次內,開始語句的位移。 | 61 | Yes |
要求識別碼 | int | 包含語句的要求標識碼。 | 49 | Yes |
ServerName | nvarchar | 要追蹤的 SQL Server 名稱。 | 26 | No |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
SPID | int | 線上的伺服器進程識別碼。 | 12 | Yes |
SqlHandle | varbinary | 64 位哈希,以臨機操作查詢的文字或 SQL 物件的資料庫和物件識別碼為基礎。 此值可以傳遞至 sys.dm_exec_sql_text,以擷取相關聯的 SQL 文字。 | 63 | No |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | 重新編譯之 Transact-SQL 語句的文字。 | 1 | Yes |
TransactionID | bigint | 交易的系統指派標識碼。 | 4 | Yes |
XactSequence | bigint | 描述目前交易的令牌。 | 50 | Yes |