应用报错,临时表空间已满,跑数据中断。
查看了什么sql语句引起的,发现
select count(1)*********union***;
遍历了两个千万级别的表,占了5G左右的临时表空间,把union 换成union all后,这条语句的花费减小了几十倍。
那么union和union all有什么区别呢?
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
union消耗的资源比union all多很多,因为,需要去掉重复行,还需要排序。