對於我的SQL查詢,我平時的SELECT語句如下:T-SQL 1 = 1的性能損失
SELECT ...
FROM table t
WHERE 1=1
AND t.[column1] = @param1
AND t.[column2] = @param2
這將使它更容易,如果我需要添加/刪除/發表評論任何WHERE子句,因爲我不必關心第一行。
使用此模式時是否有任何性能問題?
附加信息:
舉例sheepsimulator和所有其他誰沒有得到使用。
假設上面的查詢,我需要改變@參數1爲不包括在查詢:
隨着1 = 1:
...
WHERE 1=1 <-- no change
--AND t.[column1] = @param1 <-- changed
AND t.[column2] = @param2 <-- no change
...
無1 = 1:
...
WHERE <-- no change
--t.[column1] = @param1 <-- changed
{AND removed} t.[column2] = @param2 <-- changed
...
對不起,如果這聽起來有點兒不對勁,但我真的不知道如何將1 = 1加到WHERE子句中可以獲得上述好處;你能否爲我們這些想要學習這種可能的最佳實踐的人們詳細闡述? – 2009-06-26 14:44:31
@sheepsimulator:這是超級簡單的評論和取消任何條件只是通過預先考慮雙破折號( - ) – Quassnoi 2009-06-26 14:48:21
嘿阿德里安,我總是做同樣的事情,它是如此舒適,建立動態查詢... – tekBlues 2009-06-26 14:52:30