日期:2014-05-17  浏览次数:20469 次

执行速度问题
SQL code
SELECT
B.TB015,    --预计领料
D.AE004        --计划开始
--UPDATE [192.168.90.15].YY.dbo.MOCTB 
--SET TB015 = D.AE004
FROM
[192.168.90.15].YY.dbo.MOCTA AS A,
[192.168.90.15].YY.dbo.MOCTB AS B,
[192.168.90.15].YY.dbo.CMSMW AS C,
APSMERP AS D
WHERE
A.TA001=B.TB001
AND
A.TA002=B.TB002
AND
C.MW001=B.TB006
AND
A.TA006=D.AE001  Collate Chinese_PRC_CI_AS 
AND
C.MW002=D.AE002  Collate Chinese_PRC_CI_AS 
AND
B.TB003=D.AE003     Collate Chinese_PRC_CI_AS 
AND
A.TA006 IN (select DISTINCT CD001 from [192.168.90.15].YY.dbo.APSCODE)
AND
A.TA011<>'Y'
AND
A.TA011<>'y'
AND
A.TA013='Y'
AND
B.TB004 - B.TB005 >0


上边语句执行查询速度很快

但是执行UPDATE时速度出奇的慢
SQL code
UPDATE [192.168.90.15].YY.dbo.MOCTB 
SET TB015 = D.AE004
FROM
[192.168.90.15].YY.dbo.MOCTA AS A,
[192.168.90.15].YY.dbo.MOCTB AS B,
[192.168.90.15].YY.dbo.CMSMW AS C,
APSMERP AS D
WHERE
A.TA001=B.TB001
AND
A.TA002=B.TB002
AND
C.MW001=B.TB006
AND
A.TA006=D.AE001  Collate Chinese_PRC_CI_AS 
AND
C.MW002=D.AE002  Collate Chinese_PRC_CI_AS 
AND
B.TB003=D.AE003     Collate Chinese_PRC_CI_AS 
AND
A.TA006 IN (select DISTINCT CD001 from [192.168.90.15].YY.dbo.APSCODE)
AND
A.TA011<>'Y'
AND
A.TA011<>'y'
AND
A.TA013='Y'
AND
B.TB004 - B.TB005 >0


这种情况的原因是什么?
该如何解决?

------解决方案--------------------
查询结果集多少?

还有那表有触发器或者级联的关系么?还有特别的索引维护么?

更新相对查询来说一般都慢。