请教一个sqlserver外围服务器查询的问题

qulitao8888 2015-07-23 09:42:29
select * from opendatasource('SQLOLEDB','Data Source=3.3.3.3,1433;user ID=sa;password=;').TopoDB.dbo.tbl_Node
union
select * from opendatasource('SQLOLEDB','Data Source=2.2.2.2,1433;user ID=sa;password=;').TopoDB.dbo.tbl_Node
union
select * from opendatasource('SQLOLEDB','Data Source=1.1.1.1,1433;user ID=sa;password=;').TopoDB.dbo.tbl_Node

这些数据库的表与字段完全一样。 想通过外围进行汇总查询, 有什么方式能增加连通外围的速度呢? 在每台服务器本机查询都非常快, 如果远程连接汇总查询会慢一些有延时。

再有一个如果其中一个服务器宕机了整条汇总语句就都不可读了。 有什么方法能让其中一个宕机而且程序能正常执行呢? 真的谢谢了



...全文
165 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
恩 怎么写呢 , 对TSQL 不了解, 给点模板思路什么的吧
Pact_Alice 2015-07-23
  • 打赏
  • 举报
回复
可以将脚本插入语句的脚本写成存储过程,做一个JOB定时的查询
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
6楼的兄弟 最后汇总临时表可以根据外围的表更改而变化吗? 7楼的兄弟,外围服务器主动推送整表数据如何做? 必须要几分钟内推送一次的。。 需要时时刻刻更新 因为这些外围的表示网管系统的告警列表,, 谢谢兄弟们那
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
需要每几分钟就得对这些服务器数据表进行查询一次, 临时表能像触发器那样 跟着主表而变化吗?
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
放入临时表 是需要insert 的吧 我的这些外部服务器表数据是实时变化的, 那么临时表也得实时变化 如何? 对性能能不能影响呢 兄弟们
Pact_Alice 2015-07-23
  • 打赏
  • 举报
回复
你可以分为三次将结果放入临时表中,然后去查临时表,这样即使其中一个服务器出现问题,我们查表数据的时候就是没有那个出问题的服务器数据而已
Tiger_Zhao 2015-07-23
  • 打赏
  • 举报
回复
你要查询不受外围服务器故障的影响,必须由外围服务器主动把数据推送到中心服务器上。
仅查询本地数据库就不受影响了。
许晨旭 2015-07-23
  • 打赏
  • 举报
回复
用这个链接里的方法试试linkserverhttp://www.cnblogs.com/daniel206/archive/2008/01/16/1041748.html
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
有人吗 ,我用上面的Dlink 开启了两个远程语句, 其中一个dlink 我故意写错Ip地址,代表他宕机,但是依然是卡主了不继续执行
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
兄弟我能加你QQ吗
Pact_Alice 2015-07-23
  • 打赏
  • 举报
回复
首先你可以写一个DBLink exec sp_addlinkedserver @server='ProDB', --Linked Server Name @srvproduct='', --Product Name @provider='SQLOLEDB', --Provider @datasrc='61.141.22.66' --Data Address Go exec sp_addlinkedsrvlogin @useself='false', @rmtsrvname='ProDB', --Linked Server Name @rmtuser='bluelinkr', --User ID @rmtpassword='bluelinkr123!@#' 然后在查询的时候就不需要opendatasource('SQLOLEDB','Data Source=3.3.3.3,1433;user ID=sa;password=;') select col1,col2.. from ProDB.库名称.dbo.表名称 再次你最好把需要的列名称全部列出,不要用*来展示
qulitao8888 2015-07-23
  • 打赏
  • 举报
回复
有人吗 顶一下

27,579

社区成员

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

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