我这里有一个代码,来自一位离开我公司的同事,我正试图更快地运行它。基本上,它执行以下操作:
SELECT DISTINCT
column1,
ISNULL(column2,0),
column3
FROM (
SELECT column1, column2, column3
FROM table1
INNER JOIN ...
WHERE ...
UNION
SELECT ALL column1, column2, column3
FROM table2
INNER JOIN ...
WHERE ...
) as DT
我正在检查一些站点,发现 UNION 子句只获取不同的值。使用 distinct 子句执行需要 15 秒,不使用需要 3 秒。(查询有点复杂:/)。所以在任何情况下,第一个查询中的 DISTINCT 会有什么不同,或者我可以简单地删除它?
提前致谢!
--- 编辑谁可能会觉得这很有用:) --- 问题出在 UNION 语句之后使用的 ISNULL 上。在我将其更改为子查询后,性能与删除不同的相同。