我有一個多個if-elseif- else
語句的存儲過程。當我嘗試刪除此if elseif
語句並執行該查詢的唯一的單部分,它返回的結果非常快,但是當使用此查詢與多個使用if-elseif
case語句另一個查詢,那麼它需要太多的時間...如何使用多個if else語句提高存儲過程性能?
例如:
if @Status = 1
begin
select .....
end
else if @Status = 2
begin
select .....
end
else if @Status = 3
begin
select .....
end
else if....
還有更多else if
語句在該存儲過程..
請提供代碼的情況下,使我們能夠理解和如何聚合/如果人換掉了幫助。無論如何,如果select語句相似,則可以使用decode/case。 – Debabrata
基於問題中使用的語法,我用'sql-server'重新標記了這個問題。 –
使用IFs只會損害性能。發佈單個'SELECT'語句並嘗試重寫它們,以便*不需要該IF。添加適當的索引。如果沒有實際查詢,不可能提供更多幫助 –