admin

UNION vs DISTINCT的表现

sql

在SQL 2008中,我有这样的查询:

QUERY A
UNION 
QUERY B
UNION 
QUERY C

它会比将所有3个查询的结果放入一个临时表然后再用SELECT它们查询来慢/快DISTINCT吗?


阅读 185

收藏
2021-07-01

共1个答案

admin

它取决于查询-在不知道查询A,B或C的复杂性的情况下,这不是可以回答的,因此,最好的选择是分析然后基于此进行判断。

但是…
无论如何,我可能都会使用一个联合:临时表可能会非常昂贵,尤其是当它变大时。请记住,使用临时表时,您正在显式创建额外的操作,因此需要进行更多的I /
O操作以使磁盘子系统处于压力状态。如果您可以在不使用临时表的情况下进行选择,那么它总是(可能)会更快。

此规则一定会有一个例外(或七个),因此最好对实际的大型数据集进行剖析,以确保获得一些可靠的数据来做出适当的决策。

2021-07-01