语句:
declare @P1 varchar(14),@P2 varchar(1),@P3 varchar(1)
set @P1='PH0001'
set @P2=''
set @P3='C'
SELECT MB001,MB002,MB003,MF004,MW002
FROM INVMB WITH (NOLOCK)
INNER JOIN BOMMF WITH (NOLOCK) ON MB010=MF001 AND MB011=MF002
INNER JOIN CMSMW WITH (NOLOCK) ON MW001=MF004
WHERE @P1 IN (MB001,'') AND @P2 IN (MF004,'') AND MW201=@P3
AND MF209 = 'Y'对INVMB表的MB001做聚焦,执行由31秒降为28秒,晕倒啊。
declare @P1 varchar(14),@P2 varchar(1),@P3 varchar(1)
set @P1='PH0001'
set @P2=''
set @P3='C'
SELECT MB001,MB002,MB003,MF004,MW002
FROM INVMB WITH (NOLOCK)
INNER JOIN BOMMF WITH (NOLOCK) ON MB010=MF001 AND MB011=MF002
INNER JOIN CMSMW WITH (NOLOCK) ON MW001=MF004
WHERE @P1 IN (MB001,'') AND @P2 IN (MF004,'') AND MW201=@P3
AND MF209 = 'Y'对INVMB表的MB001做聚焦,执行由31秒降为28秒,晕倒啊。
--是不是搞反了?
WHERE MB001=@P1 AND MF004=@P2 AND MW201=@P3
@P1 IN (MB001,'')
应该是等效于MB001=@P1 or @P1=''的偷懒式写法。语句是跟踪出来的,不能动。只能改索引来优化了。唉。