代码之家  ›  专栏  ›  技术社区  ›  Saurabh Kumar

工会与政绩不同

  •  2
  • Saurabh Kumar  · 技术社区  · 15 年前

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

    QUERY A
    UNION 
    QUERY B
    UNION 
    QUERY C
    

    它是否比将所有3个查询的结果放入一个临时表然后 SELECT 给他们打电话 DISTINCT ?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Callie J    15 年前

    这取决于查询——在不知道查询A、B或C的复杂性的情况下,它不是一个可以回答的问题,因此您最好的选择是对其进行分析,然后在此基础上进行判断。

    然而。。。 不管怎样,我可能会选择工会:临时桌子可能会很贵,特别是当它变大的时候。请记住,对于临时表,您显式地创建了额外的操作,从而创建了更多的i/o,以使磁盘子系统承受更大的压力。如果您可以在不诉诸临时表的情况下进行选择,那么这通常(可能)会更快。

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

        2
  •  0
  •   Alex    15 年前

    query A UNION query B......
    

    那是最快的,当然要看你想做什么。