星期六, 7月 28, 2018

[SQL] 日期轉換效能

查 Top 10 語法時,發現 AVG_Logical_Read 極端高的語法,神奇的是從 SQL Server 2005 DMV 抓到的執行計畫,執行計畫中的每個 Table 都用 Index Seek 只輸出一筆資料,完全任何頭緒可以調校,Orz

部分截圖記錄一下

[SQL] 日期轉換效能-1
在 SSMS V17.7 上執行該語法,發現最後的 Select 操作子有驚嘆號,一查詢才發現,老朋友又是你 - [SQL] 當天午夜時間

[SQL] 日期轉換效能-3
TSQL 關鍵語法
WHERE l.工作日結束日期 > CAST(DATEDIFF(dd, 7, GETDATE()) AS DATETIME)
把 CAST(DATEDIFF(dd, 7, GETDATE()) AS DATETIME) 修正為 CONVERT(char(10),DATEADD(dd,-7,GETDATE()),120),執行計畫成本馬上出現差異

[SQL] 日期轉換效能-2

CAST(DATEDIFF(dd, 7, GETDATE()) AS DATETIME) 的操作子明細

[SQL] 日期轉換效能-4

在 Local 端觀察 Statistics 是沒有甚麼異樣,跟同事討論後再修正 TSQL 語法後,再觀察囉

沒有留言:

張貼留言