星期一, 8月 12, 2019

[SQL] 增加適合的 WHERE 條件

之前記錄過 [SQL] 限制資料筆數 12,是因為多餘的 WHERE 條件導致效能問題,這篇則是剛好相反,少了適合的 WHERE 條件

剛好懂這幾個 Table 商業邏輯,所以很明確地知道 [訂單明細訂單剩餘數量] 條件是可以加上去,請同事確認後,確定沒問題
SELECT
  pa.訂單編號
  ,c1.客戶名稱
FROM 訂單 AS pa
  JOIN 訂單明細 AS i ON pa.訂單編號 = i.訂單編號
  JOIN 派工單 AS S ON S.派工單號 = I.派工單號
  JOIN 
   (
     ................
   ) AS c1 ON c1.客戶編號 = pa.客戶編號
WHERE S.是否結案 = ''
  -- 加上去的 WHERE 條件
  AND I.訂單剩餘數量 > 0
改善前後執行計畫成本比較

[SQL] 增加適合的 WHERE 條件-1

訂單 Table 改善前的執行計畫,拋出了全部資料

[SQL] 增加適合的 WHERE 條件-2
訂單 Table 改善後的執行計畫,只有抓出 159 筆資料

[SQL] 增加適合的 WHERE 條件-3

訂單、訂單明細 Table Statistics 前後比較

[SQL] 增加適合的 WHERE 條件-4

沒有留言:

張貼留言