星期一, 3月 30, 2020

[SQL] 使用 XML 執行計畫觀察遺漏索引建議

之前看國外大神介紹 missing index,才知道原來 xml 執行計畫內會有多組 missing index 建議,但是在圖形執行計畫內只會顯示一個,且通常圖形執行計畫建議的都不是最好的那一個,有了這個認知後,只要有 missing index 建議,就會開啟 xml 執行計畫來查,總算是遇到多組 missing index 建議

在圖形執行計畫上按滑鼠右鍵就可以顯示 xml 執行計畫

[SQL] 使用 XML 執行計畫觀察遺失索引-3

在圖形執行計畫上是顯示 impact 為 30.539% missing index

[SQL] 使用 XML 執行計畫觀察遺失索引-1

從 xml 執行計畫中可以發現有兩個 missing index 建議 [深綠、藍],上方深綠為圖形執行計畫建議 impact 30.539,下方藍色為 xml 執行計畫中看見 impact 30.8542,兩者其實只是少掉 include 一個欄位

[SQL] 使用 XML 執行計畫觀察遺失索引-2

第一次觀察到,紀錄一下

星期五, 3月 13, 2020

[SQL] LIKE 沒有使用 %

發現一段 TSQL 語法,WHERE 條件使用 LIKE 要進行模糊搜尋,但是卻沒有加上 % 符號,猜測是手誤沒有加上去的,語法如下
WHERE 單號欄位1 LIKE 單號 OR 單位欄位2 LIKE 單號
手動測試從輸出結果感覺是 [LIKE 沒有 % 符號],似乎等於使用 [= 號],從 Seek Predicates 發現是 [單號欄位 >= 單號參數 AND 單號欄位 <= 單號參數]

[SQL] LIKE 沒有使用 %-4

確認條件後,那就直接用 [= 號] 就行,統計資訊和 CPU 時間差異不大,但執行計畫成本就有差異

[SQL] LIKE 沒有使用 %-3