如何实现一个查询分别取两个库的数据?

ggsysy 2013-12-06 10:52:34
有两个ERP系统,服务器和库都是分别独立的。比如现在要查个销售数据,要分别在A、B两个系统中查询出来,然后用人工在excel进行合并汇总,这样效率太低了。现在就是想做一个小软件,专门用来查询用的,数据源要同时取这两个系统,该怎样实现比较好?
我只能想到下面几点:
1、如果是直接后台连接数据库,那么各自取出来的数据也不能union吧?再者安全性应该也是一个问题。
2、如果是建立一个库C,把A、B库的数据都同步过来(其实怎么个同步法我也不清楚),这样效率会不会很慢?会不会影响到正式库的性能?

大家都有哪些好方法提供一下呢?

...全文
485 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
人鱼传说 2013-12-15
  • 打赏
  • 举报
回复
链接服务器不要考虑,那会严重拖慢原服务器的查询性能,要么用SQL2005企业版以上版本做数据库镜像,即可以做备份,又能在镜像服务器上做两个ERP系统的综合查询和分析
Leon_He2014 2013-12-07
  • 打赏
  • 举报
回复
建议把数据抽取到同一个服务器上在处理,能保证查询性能
xuebaoling 2013-12-07
  • 打赏
  • 举报
回复
链接服务器啊
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
引用 15 楼 guangguang2007 的回复:
那就是说: 1、如果AB库开链接,查询速度会比较慢; 2、如果AB库分别同步到C服务器,然后去C进行查询,速度会比较快。
单库或者单服务器可以减少网络问题,服务器之间的权限匹配问题,及一些统计信息、系统信息获取问题,所以较快
LongRui888 2013-12-06
  • 打赏
  • 举报
回复
引用 15 楼 guangguang2007 的回复:
那就是说: 1、如果AB库开链接,查询速度会比较慢; 2、如果AB库分别同步到C服务器,然后去C进行查询,速度会比较快。
其实第1种方法之所以慢是,每次查询 的时候,都需要从A和B服务器上取数据,所以导致慢。 现在你把A和B的数据都同步到C后,直接在一台服务器上就可以同时查询到A和B的数据了,就快了。
LongRui888 2013-12-06
  • 打赏
  • 举报
回复
引用 15 楼 guangguang2007 的回复:
那就是说: 1、如果AB库开链接,查询速度会比较慢; 2、如果AB库分别同步到C服务器,然后去C进行查询,速度会比较快。
嗯 对的
ggsysy 2013-12-06
  • 打赏
  • 举报
回复
那就是说: 1、如果AB库开链接,查询速度会比较慢; 2、如果AB库分别同步到C服务器,然后去C进行查询,速度会比较快。
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
如果同步到一个服务器,那就直接两库查询,没必要开连接服务器
ggsysy 2013-12-06
  • 打赏
  • 举报
回复
那大致的意思就是先把两个库同步到同一个服务器,然后开链接服务器进行查询。我理解的没错吧?
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
新加服务器还不如加到AB中的某一台,除非空间和其他资源不足
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
只要没有大数据量短时操作或者硬件问题,初始化过后实时同步都是可以接受的
LongRui888 2013-12-06
  • 打赏
  • 举报
回复
引用 9 楼 guangguang2007 的回复:
[quote=引用 6 楼 yupeigu 的回复:] 一个是链接服务器,但这个效率就有点差 另一个就是数据库的同步,就是你说的加一个服务器C,然后把A的和B的都同步到C,这个效率还是可以的,一般不会影响A和B的: SQL Server 2008 数据库同步的两种方式 (发布、订阅) http://kb.cnblogs.com/page/103975/
如果是实时同步,对AB应该会有影响吧。一般这种情况下同步时间间隔是多少比较好?[/quote] 得看你的业务需求,如果你对时间要求不高,那么可以1分钟同步1次
ggsysy 2013-12-06
  • 打赏
  • 举报
回复
引用 6 楼 yupeigu 的回复:
一个是链接服务器,但这个效率就有点差 另一个就是数据库的同步,就是你说的加一个服务器C,然后把A的和B的都同步到C,这个效率还是可以的,一般不会影响A和B的: SQL Server 2008 数据库同步的两种方式 (发布、订阅) http://kb.cnblogs.com/page/103975/
如果是实时同步,对AB应该会有影响吧。一般这种情况下同步时间间隔是多少比较好?
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
单服务器跨库查询相对于跨服务器查询要快的多,当然也比不上单库查询
ggsysy 2013-12-06
  • 打赏
  • 举报
回复
比如我把B库同步到A库的服务器,那么此时的情况就是一个服务器有两个库,这样做查询效率就比较高,是这个意思吗?
LongRui888 2013-12-06
  • 打赏
  • 举报
回复
一个是链接服务器,但这个效率就有点差 另一个就是数据库的同步,就是你说的加一个服务器C,然后把A的和B的都同步到C,这个效率还是可以的,一般不会影响A和B的: SQL Server 2008 数据库同步的两种方式 (发布、订阅) http://kb.cnblogs.com/page/103975/
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
分库甚至分服务器本身就已经抛弃了高性能
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
会是肯定会的,所以你可能需要把数据同步到一个服务器上再查
ggsysy 2013-12-06
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
开链接服务器,比如A能连B, 然后在A上: select * from a.db.dbo.tb union all select * from b.db.dbo.tb
开链接服务器会不会影响现有正式库的性能?如果用union的方法,之后肯定是要用group by的,那到时我做的软件去查询数据,岂不是速度会很慢?
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
这种跨服务器的连接通常都很慢,如果不需要实时,可以把数据预先查到一台机器,然后关联,这样就不满。如果需要实时,可能需要借助一些技术如复制,把另外一台机器的数据库实时同步到本机器,再进行关联
加载更多回复(3)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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