SQL查询很慢(存在/加入)

时间:2015-11-10 06:11:54

标签: sql performance join exists

我有一个SQL查询来更新记录。我使用'EXISTS'函数,但速度非常慢。现在我想用连接更改我的查询。

UPDATE zp
SET ZP.TEST1=NULL,
    ZP.TEST2=NULL,
    ZP.TEST3=NULL,
    ZP.TEST4=NULL,
    ZP.TEST5=NULL,
    ZP.TEST6=NULL,
    ZP.TEST7=NULL,
    ZP.TEST8=NULL,
    ZP.TEST9=NULL,
    ZP.TEST10=NULL,
    ZP.TEST11=NULL,
    ZP.TEST12=NULL,
    ZP.TEST13=NULL,
    ZP.TEST14=NULL,
    ZP.TEST15=NULL
from TestTable ZP
WHERE NOT(
        (ZP.name='I' 
    AND
         surname='S'
    OR 
         addr='S' 
    AND 
        ClientID IS NOT NULL)
    AND EXISTS(
        SELECT * FROM table2 P
        WHERE P.OrgID=ZP.OrgID AND
        P.CATEGORY='D'
    )
)

1 个答案:

答案 0 :(得分:0)

稍微提高效率......

EXISTS(
        SELECT 1 FROM table2 P
        WHERE P.OrgID=ZP.OrgID AND
        P.CATEGORY='D'

即1而不是*。

但我确信这不是完整的解决方案。