+ -
当前位置:首页 → 问答吧 → 如何查询多个数据库中名字相同的表的数据到同一张表

如何查询多个数据库中名字相同的表的数据到同一张表

时间:2011-12-07

来源:互联网

设定有超过10个数据库,名字不同。如A1,A2……A10,10个库
10个库中有都有一个相同的表 TABLE
表结构
Id Name Type Date

如何把10个库中表的数据查询到同一张表重新设置主键列ID排序,并提高查询效率。设想将要查询数据的总量超过1000万或1亿,查询的库将要超过10万,网页查询中在网页超时前查询出结果。

作者: zdc198771   发布时间: 2011-12-07

select * from(
select Name, Type ,Date from A1.dbo.表名
union all 
select Name, Type, Date from A2.dbo.表名
union all 
select Name, Type ,Date from A3.dbo.表名
...) order by id

作者: sjcss   发布时间: 2011-12-07

设想将要查询数据的总量超过1000万或1亿

这个估计得考虑分区表了。单纯的UNION ALL效率是不会很高的

作者: fredrickhu   发布时间: 2011-12-07

引用 1 楼 sjcss 的回复:

select * from(
select Name, Type ,Date from A1.dbo.表名
union all
select Name, Type, Date from A2.dbo.表名
union all
select Name, Type ,Date from A3.dbo.表名
...) order by id

这个根本不行,是10个不同库中,10个相同名字的表啊

作者: zdc198771   发布时间: 2011-12-09

引用 2 楼 fredrickhu 的回复:

设想将要查询数据的总量超过1000万或1亿

这个估计得考虑分区表了。单纯的UNION ALL效率是不会很高的


分区表怎么做,求解?

作者: zdc198771   发布时间: 2011-12-09

引用 2 楼 fredrickhu 的回复:

设想将要查询数据的总量超过1000万或1亿

这个估计得考虑分区表了。单纯的UNION ALL效率是不会很高的

而且,经常不是为了查询单一记录,而是要查询几乎全表的记录,来计算总量之类的操作

作者: zdc198771   发布时间: 2011-12-09