建立SQL Server 2008的計劃指南

iSQlServer發表於2008-11-26

本主題說明了如何使用 SQL Server Management Studio 建立計劃指南。 計劃指南通過將查詢提示或固定查詢計劃附加到查詢來影響查詢優化。 在計劃指南中,您需要指定要優化的 Transact-SQL 語句以及包含要使用的查詢提示的 OPTION 子句或要用於優化查詢的特定查詢計劃。 當查詢執行時,查詢優化器會將相應 Transact-SQL 語句與計劃指南進行匹配,然後在執行時將此 OPTION 子句附加到查詢,或使用指定的查詢計劃。

以下示例為 Transact-SQL 語句建立了一個計劃指南,並將 FORCESEEK 查詢提示應用到該語句。 該查詢提示強制優化器使用索引查詢操作來訪問指定表中的資料。

 建立計劃指南示例
在物件資源管理器中,連線到 資料庫引擎 例項,再展開該例項。

依次展開“資料庫”、AdventureWorks 資料庫和“可程式設計性”。

右鍵單擊“計劃指南”,然後單擊“新建計劃指南”。

在“名稱”中,輸入 ForceseekPlan 作為計劃指南的名稱。

在“語句”中,輸入以下 Transact-SQL 語句。 這是要對其應用計劃指南的語句。

 複製程式碼
SELECT c.LastName, c.FirstName, HumanResources.Employee.Title
FROM HumanResources.Employee
JOIN Person.Contact AS c ON HumanResources.Employee.ContactID = c.ContactID
WHERE HumanResources.Employee.ManagerID = 3 ORDER BY c.LastName, c.FirstName;在“作用域型別”中,選擇 SQL 作為顯示 Transact-SQL 語句的實體的型別。

在“提示”中,輸入以下 OPTION 子句。

 複製程式碼
OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))若要建立計劃指南,請單擊“確定”。

在物件資源管理器中,連線到 資料庫引擎 例項,再展開該例項。

依次展開“資料庫”、AdventureWorks 資料庫和“可程式設計性”。

右鍵單擊“計劃指南”,然後單擊“新建計劃指南”。

在“名稱”中,輸入 ForceseekPlan 作為計劃指南的名稱。

在“語句”中,輸入以下 Transact-SQL 語句。 這是要對其應用計劃指南的語句。

 複製程式碼
SELECT c.LastName, c.FirstName, HumanResources.Employee.Title
FROM HumanResources.Employee
JOIN Person.Contact AS c ON HumanResources.Employee.ContactID = c.ContactID
WHERE HumanResources.Employee.ManagerID = 3 ORDER BY c.LastName, c.FirstName;在“作用域型別”中,選擇 SQL 作為顯示 Transact-SQL 語句的實體的型別。

在“提示”中,輸入以下 OPTION 子句。

 複製程式碼
OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))若要建立計劃指南,請單擊“確定”。

 驗證計劃指南是否與查詢匹配
啟動一個 SQL Server Profiler跟蹤,確保 Plan Guide Successful 和 Plan Guide Unsuccessful 事件型別均已選中(位於“效能”節點下面)。

執行在上一過程的步驟 5 中提供的查詢。

暫停 SQL Server Profiler跟蹤。

在 Plan Guide Successful 事件中查詢受影響的查詢。

如果計劃指南與查詢不匹配,請確保查詢完全是以在計劃指南語句中指定的格式(字元對字元)提供的。 這包括製表符、空格、回車符或換行符。

啟動一個 SQL Server Profiler跟蹤,確保 Plan Guide Successful 和 Plan Guide Unsuccessful 事件型別均已選中(位於“效能”節點下面)。

執行在上一過程的步驟 5 中提供的查詢。

暫停 SQL Server Profiler跟蹤。

在 Plan Guide Successful 事件中查詢受影響的查詢。

如果計劃指南與查詢不匹配,請確保查詢完全是以在計劃指南語句中指定的格式(字元對字元)提供的。 這包括製表符、空格、回車符或換行符。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503355/,如需轉載,請註明出處,否則將追究法律責任。

相關文章