union效率问题

Dision LI 2013-07-17 05:48:41
有个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秒,怎么能提高效率速度



...全文
219 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2013-07-18
  • 打赏
  • 举报
回复
是每个查询都搞成一个索引视图,然后之间union
Dision LI 2013-07-18
  • 打赏
  • 举报
回复
索引视图不是不能用union么
Leon_He2014 2013-07-18
  • 打赏
  • 举报
回复
1.把union 改成union all 2.在这视图上加索引
發糞塗牆 2013-07-18
  • 打赏
  • 举报
回复
估计唯一有用的办法就是索引视图了,没有where,你那个必然是聚集索引扫描
Dision LI 2013-07-18
  • 打赏
  • 举报
回复
我这有二十多列,都是需要用到的 - - 怎么提高效率
Dision LI 2013-07-18
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
1、没有where,速度会受影响 2、如果没必要的话,把union改成union all
不需要where 改为union all后还是一样,每个表都有主键
jmx123456789 2013-07-18
  • 打赏
  • 举报
回复
可以考虑换个思路: 每个语句后面跟上where 最后union all连接效率高
叶子 2013-07-17
  • 打赏
  • 举报
回复
四个表是否都有索引?
Andy__Huang 2013-07-17
  • 打赏
  • 举报
回复
你单独查询四个表需要的多少时间?union 会过滤掉重复的记录 你可以尝试把union改为union all,时间是否会少一些?
發糞塗牆 2013-07-17
  • 打赏
  • 举报
回复
1、没有where,速度会受影响 2、如果没必要的话,把union改成union all

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧