升級至 SQL Server 2008 通常能提升效能,但對經深度調優的關鍵任務查詢,新版優化器可能選擇較差計畫。Plan Guide(計畫指南) 可在升級前捕獲並固化優良計畫,升級後作為後備強制使用。
sp_create_plan_guide 搭配 USE PLAN 提示,將關鍵查詢的 XML 計畫存入 Plan Guide。SET SHOWPLAN_XML ON / SET STATISTICS XML ONsys.dm_exec_query_plan DMV-- 目標查詢
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
ORDER BY PostalCode DESC;
-- 擷取 XML 計畫
USE AdventureWorks;
GO
SELECT query_plan
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY sys.dm_exec_text_query_plan(qs.plan_handle, DEFAULT, DEFAULT) AS qp
WHERE st.text LIKE N'SELECT City, StateProvinceID, PostalCode FROM Person.Address ORDER BY PostalCode DESC;%';
-- 建立 Plan Guide (假設 @xml_plan 為上述查詢結果)
EXEC sp_create_plan_guide
@name = N'Guide_Address_PostalCode',
@stmt = N'SELECT City, StateProvinceID, PostalCode FROM Person.Address ORDER BY PostalCode DESC;',
@type = N'SQL',
@module_or_batch = NULL,
@params = NULL,
@hints = N'OPTION (USE PLAN @xml_plan)';