【发布时间】:2019-07-02 19:46:11
【问题描述】:
一般来说,我有一个 SELECT 查询与三个独立的 SELECT 查询相结合。我在查询中使用 EXCEPT 和 UNION 运算符。当独立执行查询时,我会在 1-2 秒内收到结果,但是当有 EXCEPT 运算符时,查询将需要几个小时。
查询结构(简化)如下:
SELECT DISTINCT FIELD_1, FIELD_2, FIELD_3 FROM MYTABLE
EXCEPT
(
SELECT DISTINCT FIELD_1, FIELD_2, FIELD_3 FROM MYTABLE WHERE XXX
UNION
SELECT DISTINCT FIELD_1, FIELD_2, FIELD_3 FROM MYTABLE WHERE YYY
)
是否有任何方法可以加快整个查询的速度,或者 EXCEPT 运算符一般来说太慢以至于应该避免使用?
【问题讨论】:
-
WHERE NOT EXISTS? -
表格有列,而不是字段。
-
SELECT DISTINCT FIELD_1, FIELD_2, FIELD_3 FROM MYTABLE WHERE NOT XXX AND NOT YYY怎么样? -
这三个查询真的都针对同一个表,还是只是你的混淆?
标签: sql sql-server union except