一个多表联合查询效率问题,该怎么解决?

big_worm 2006-05-10 02:11:16
查询语句:
select * from stroed110101 where id='98760987234' union all
select * from stroed110102 where id='98760987234' union all
select * from stroed110103 where id='98760987234' union all
select * from stroed110104 where id='98760987234' union all
select * from stroed110105 where id='98760987234' union all
select * from stroed110106 where id='98760987234' union all
select * from stroed110107 where id='98760987234' union all
.
.
.
select * from stroed110131 where id='98760987234'
因为各地库存表中记录很多,无法全部保存在在SQL SERVER中的一个表中(总记录数有2000万左右)
因此需要对一种产品进行多表查找,但效率很低,该怎么写这样的SQL来解决实际问题?
...全文
554 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhai2891 2006-10-09
  • 打赏
  • 举报
回复
学习
ReViSion 2006-10-05
  • 打赏
  • 举报
回复
也就是分布式视图
ReViSion 2006-10-05
  • 打赏
  • 举报
回复
建立索引视图,在查询列上建立好
规则,
stevenW 2006-10-05
  • 打赏
  • 举报
回复
mark
OYGX 2006-10-05
  • 打赏
  • 举报
回复
up 学习
Tian987 2006-05-11
  • 打赏
  • 举报
回复
用视图,然后在视图上见索引,方法见联机文档
jshi123 2006-05-11
  • 打赏
  • 举报
回复
具体的:
水平分区视图组合方案

下面这段摘自联机手册,与你描述的问题大致一致:

-------------------------------
组合分区数据
Transact-SQL UNION 集合运算符可在视图内使用,以将来自不同表的两个或多个查询结果组合成单一的结果集。这在用户看来是一个单独的表,称为分区视图。例如,如果一个表含有华盛顿的销售数据,另一个表含有加利福尼亚的销售数据,即可从 UNION 创建这两个表的视图。该视图代表了这两个区域的销售数据。

使用分区视图时,首先创建几个相同的表,指定一个约束以决定可在各个表中添加的数据范围。视图即使用这些基表创建。当查询该视图时,SQL Server 自动决定查询所影响的表,并仅引用这些表。例如,如果一个查询指定只需要华盛顿州的销售数据,则 SQL Server 只读取含有华盛顿销售数据的表,而并不访问其余的表。
-------------------------------

请参考:联机手册
-- 优化数据库性能 | 数据库设计 | 物理数据库设计 | 分区
j__jake 2006-05-10
  • 打赏
  • 举报
回复
同意用视图
47522341 2006-05-10
  • 打赏
  • 举报
回复
楼主建立实时表union各个子表的过程本身就需要先将所有数据读入内存;
然后将结果写入磁盘文件。
也就是说
你建立这个实时表本身就需要2000万次的磁盘I/O,慢是必然的;
能否不要建立这个实时表;
tomquan 2006-05-10
  • 打赏
  • 举报
回复
up!
ShengNet 2006-05-10
  • 打赏
  • 举报
回复
关注一下
big_worm 2006-05-10
  • 打赏
  • 举报
回复
能说的具体点吗
gahade 2006-05-10
  • 打赏
  • 举报
回复
将条件做成视图,然后从视图中查询
gahade 2006-05-10
  • 打赏
  • 举报
回复
查之前先将所有表所有满足条件的记录insert进一个实表里,查的时候就from这个实表来查.每次都联合是很慢

34,576

社区成员

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

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