分享方式:


Plan Guide Unsuccessful 事件類別

適用於:SQL Server

計劃指南不成功事件類別指出 SQL Server 無法針對包含計劃指南的查詢或批次產生執行計劃。 相反地,計劃是在不使用計劃指南的情況下編譯的。 當下列條件成立時,就會引發此事件:

  • 計劃指南定義中的批次/模組符合正在執行的批次。

  • 計劃指南定義中的查詢符合正在執行的查詢。

  • 計劃指南定義中的提示,包括 USE PLAN 提示,未成功套用至查詢或批次。 也就是說,編譯的查詢計劃無法接受指定的提示,而且計劃是在不使用計劃指南的情況下編譯的。

無效的計劃指南可能會導致此事件引發。 使用 sys.fn_validate_plan_guide 函式來驗證查詢或批次所使用的計劃指南,並更正此函式所報告的錯誤。

此事件包含在 SQL Server Profiler Tuning 範本中。

注意

Azure SQL 資料庫 中無法使用此事件類別。

計劃指南不成功事件類別數據行

數據行名稱 資料類型 描述 資料行識別碼 可篩選
ApplicationName nvarchar 建立 SQL Server 實例之連線的用戶端應用程式名稱。 此資料行會填入應用程式所傳遞的值,而不是程序顯示的名稱。 10 Yes
ClientProcessID int 主計算機指派給執行用戶端應用程式的進程標識碼。 如果用戶端提供客戶端進程識別碼,就會填入此資料行。 9 Yes
DatabaseID int 如果指定的實例未發出USE database語句,則為USE database語句或預設資料庫所指定的資料庫標識碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 3 Yes
DatabaseName nvarchar 使用者語句執行所在的資料庫名稱。 35 Yes
EventClass int 事件類型 = 218。 27 No
EventSequence int 要求內特定事件的順序。 51 No
HostName nvarchar 用戶端執行所在的計算機名稱。 如果用戶端提供主機名,則會填入此數據行。 若要判斷主機名稱,請使用 HOST_NAME 函數。 8 Yes
IsSystem int 指出事件發生在系統進程或用戶進程上:1 = 系統,0 = 使用者。 60 Yes
LoginName nvarchar 使用者登入的名稱(SQL Server 安全性登入或以 DOMAIN\username 形式Microsoft Windows 登入認證)。 11 Yes
LoginSid image 已登入使用者的安全性識別碼(SID)。 您可以在 sys.server_principalssys.sql_logins 目錄檢視中找到此資訊。 每一個 SID 對於伺服器中的每個登入而言都是唯一的。 41 Yes
NTDomainName nvarchar 用戶所屬的 Windows 網域。 7 Yes
NTUserName nvarchar Windows 用戶名稱。 6 Yes
ObjectID int 套用計劃指南時所編譯之模組的物件標識符。 如果計劃指南未套用至模組,此數據行會設定為 NULL。 22 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
StartTime datetime 如果有的話,事件開始的時間。 14 Yes
TextData ntext 計劃指南的名稱。 1 Yes
TransactionID bigint 交易的系統指派標識碼。 4 Yes
XactSequence bigint 描述目前交易的令牌。 50 Yes

另請參閱

計劃指南成功事件類別
擴充事件
sp_trace_setevent (Transact-SQL)
sys.fn_validate_plan_guide (Transact-SQL)
sp_create_plan_guide (Transact-SQL)
sp_create_plan_guide_from_handle (Transact-SQL)