共用方式為


Plan Guide Unsuccessful 事件類別

適用於:SQL Server

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

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

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

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

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

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

注意

Azure SQL Database 中無法使用此事件類別。

計劃指南不成功事件類別資料行

資料行名稱 資料類型 描述 資料行識別碼 可篩選
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 安全性登入或網域\ 使用者名稱 形式的 Microsoft Windows 登入認證)。 11 Yes
LoginSid image 已登入使用者的安全性識別碼(SID)。 您可以在sys.server_principals sys.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)