我對提高存儲過程的性能2個問題:如何提高存儲過程的性能?
1)在SELECT子句:
,CASE WHEN vatcs.CashDeskId IN (1293,1296,1295) THEN 1 ELSE 0 END --Кассы-метро
,CASE WHEN vatcs.CashDeskId IN (21,994,1137,1150,1162,1163,1282,1314,1327,1328) THEN 1 ELSE 0 END --Кассы-остальные
,CASE WHEN vatcs.CashDeskId IN (988) THEN 1 ELSE 0 END --Портал 2.0
,CASE WHEN vatcs.CashDeskId IN (1089,1088,122,1085,1087,1084,1086,270) THEN 1 ELSE 0 END --Евросеть
,CASE WHEN ISNULL(vatcs.CashdeskID, 0) NOT IN (1293,1296,1295,21,994,1137,1150,1162,1163,1282,1314,1327,1328,988,1089,1088,122,1085,1087,1084,1086,270)
是否有可能加快步伐?
2)在WHERE子句:
WHERE vatcs.SoldDate >= @beginDate
AND vatcs.SoldDate < DATEADD(DAY, 1, @endDate)
我不知道這是否是優化搜索,如果沒有我怎樣才能使之成爲優化搜索?
'或'子句比'in'快,在某些地方可以使用'或'clasuse,其中與其比較的值不是太多。 –
是的。我也曾這麼想過。這是否意味着我不應該使用OR,以防IN(...)中的值太多? – tesicg
不要那樣做,IN實際上就像是OR的簡寫。 – Serge