[SQL SERVER]善用USE PLAN 提示
強制查詢最佳化程式套用所指定的執行計畫(xml格式)。
該提示大部分可以強制聯結順序、排序和索引(掃描或搜尋)運算子,
比較可惜的是無法支援分散式查詢。
當你發現有執行計畫優於現在查詢最佳化程式版本所產生執行計畫(例如不同系統環境或是前一版SQL Server執行計畫較好),
而且你又不想改寫原本TSQL查詢語法時,
這時產生較好執行計畫(xml格式),
並套用較佳品質執行計畫可能會是最快的改善方法。
select t2.OrderQty,t2.ProductID,t1.TaxAmt
from SalesOrderHeader t1 JOIN SalesOrderDetail t2
on t1.SalesOrderID=t2.SalesOrderID
查詢最佳化程式預設選擇hash join,但在不同系統環境中你想使用loop join來取代hash join,
這時我們可以先產生loop join xml格式的執行計畫,並利用該提示來套用,如下
--建立loo join xml格式執行計畫
set showplan_xml on
--套用該執行計畫
但使用該提示要注意,當套用無效的執行計畫將會導致查詢失敗,
如要避免這情況,建議使用計畫指南並附加該提示一起使用(如下圖)。