我曾以爲下面的第一個電話是更有效,因爲它不僅使該檢查一次,看是否@myInputParameter
小於5000表現在這兩個SQL場景
如果檢查失敗,我避免完全查詢。不過,我已經看到其他人的代碼就像第二個例子一樣,說這個代碼效率很高,甚至更高。
誰能告訴我哪個更快?看起來第二個會慢很多,特別是如果這個調用正在梳理大數據集。
第一次調用:
IF (@myInputParameter < 5000)
BEGIN
SELECT
@myCount = COUNT(1)
FROM myTable
WHERE [email protected]
AND someOtherColumn='Hello'
--and so on
END
第二個電話:
SELECT
@myCount = COUNT(1)
FROM myTable
WHERE [email protected]
AND someOtherColumn='Hello'
AND @myInputParameter < 5000
--and so on
編輯:我使用的是SQL Server 2008 R2的,但我真的問到感受一下它的查詢是「最佳實踐「。我敢肯定,這兩個陳述之間的查詢時間差異是千分之一秒,所以它不是那麼重要。我只是對編寫更好的SQL代碼感興趣。謝謝