当前位置:首页 > 开发 > 数据库 > 正文

UNION 和UNION ALL两者之间在性能上的区别

发表于: 2012-03-24   作者:董宗磊   来源:转载   浏览次数:
摘要: 在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。 实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如: select * from gc_dfys union se

在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:

select * from gc_dfys union select * from ls_jg_dfys

这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

select * from gc_dfys union all select * from ls_jg_dfys

UNION 和UNION ALL两者之间在性能上的区别

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
union 和 union all 都是将两个结果集合合为一个 但是他们使用和效率上来说都有所不同 union 进行连
union 和 union all 都是将两个结果集合合为一个 但是他们使用和效率上来说都有所不同 union 进行连
Union和Union all 的区别 在数据库中,union和union all关键字都是将两个结果集合并为一个,但这两
Union和Union all 的区别 在数据库中,union和union all关键字都是将两个结果集合并为一个,但这两
以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个
在数据库中,union和union all关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有
以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个
本文转自:http://www.cnblogs.com/gudujianxiao/archive/2012/07/17/2594709.html SSIS Data Flow
SQL中Union和Join语句非常类似,但是Union有一个限制条件:两个 SQL 语句所产生的栏位需要是同样的
用union all替代union Union因为要进行去除重复值的处理,所以效率要低 适用场合:1-如果合并两个sel
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号