0
我遇到了同事使用DATEADD和CAST時遇到的一些嚴重的性能問題的查詢。通過切換順序,他獲得了更好的性能。爲什麼訂單在性能方面很重要?按不同順序使用DATEADD和CAST時的性能差異
這where子句運行良好:
WHERE IHist.[DateTime] BETWEEN DATEADD(DD, -30,CAST(GETUTCDATE() AS Date)) AND DATEADD(DD, 1, CAST(GETUTCDATE() AS Date))
這where子句需要永遠:
WHERE IHist.[DateTime] BETWEEN CAST(DATEADD(DD, -30,GETUTCDATE()) AS DATE) AND CAST(DATEADD(DD, 1, GETUTCDATE()) AS DATE)
你只能猜測。請發佈執行計劃:)我懷疑它的索引在運行緩慢時未被使用。也許SQL Server不能很好地估計,並且必須將數據存儲在tempdb中...... –