星期四, 7月 06, 2023

[SQL] Compute Scalar 延遲特性

延續 [SQL] 傳遞到 LEFT 或 SUBSTRING 函數的參數長度無效,該筆記要記錄執行計畫 operator - Compute Scalar,在上述筆記中有提到 T1 樹狀 Table 單獨執行時不會拋出 Exception,但從執行計畫中可以肯定根結點 A0 資料有被拉出來

T1 TSQL 概念明細語法
SELECT * ,
    SUBSTRING(D.TreePath , 1 , LEN(D.TreePath)-3) AS TreePath
FROM 樹狀檔頭Table AS M
    JOIN 樹狀Table AS D ON M.派工單號 = D.派工單號
WHERE M.是否結案 = 0
    AND D.工作站 = 特定工作站
透過 TSQL count() 統計樹狀 Table 內根結點 A0 資料狀態
  • 包含根結點 A0 資料,總共 81,201 筆資料
  • 根結點 A0 總共有 391 筆

觀察執行計畫

[SQL] Compute Scalar 延遲特性-1

執行計畫觀察是 81,201 筆資料 (包含根結點 A0 資料) 從樹狀 Table 抓出,遇上 Compute Scalar 卻沒有拋出 Exception,透過 Nested Loosps 跟樹狀檔頭 Table 抓資料時,是透過 [派工單號] 和 [是否結案] 兩個欄位去篩選資料,資料量在此時縮減為 455 筆,也把根結點 A0 資料篩選掉,猜測是 Compute Scalar  並沒有實際執行轉換

查詢 Compute Scalar 相關資料,在這兩篇文章中獲得解答

沒有留言:

張貼留言