union效率问题
有个SQL视图为
select a1,a2 from a
union
select b1,b2 from b
union
select c1,c2 from c
union
select d1,d2 from d
记录才两万多都要了11秒,怎么能提高效率速度
------解决方案--------------------1、没有where,速度会受影响
2、如果没必要的话,把union改成union all
------解决方案--------------------你单独查询四个表需要的多少时间?union 会过滤掉重复的记录
你可以尝试把union改为union all,时间是否会少一些?
------解决方案--------------------四个表是否都有索引?
------解决方案--------------------可以考虑换个思路:
每个语句后面跟上where 最后union all连接效率高
------解决方案--------------------估计唯一有用的办法就是索引视图了,没有where,你那个必然是聚集索引扫描
------解决方案--------------------1.把union 改成union all
2.在这视图上加索引
------解决方案--------------------是每个查询都搞成一个索引视图,然后之间union