Link Server 远程开销 效率问题

shareach 2010-06-17 01:44:32
我用分数据库方式解决sql server服务器负载问题,采用多个城市数据库,一个总的用户数据库,在每个城市数据库服务器建立链接服务器;负载是均衡了,但是同时产生了远程查询开销过大的问题(基本都占70%以上,甚至90%以上的效率),我记得以前 用link server的方式没有这么大的远程查询开销,请高手出马。。谢谢
...全文
431 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
longyangyxm 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 roy_88 的回复:]
鏈接服務器上表用不到索引,效率當然會低。

數據量大時,不推薦。數據量少時可用鏈接服務器。最好用一個小程序導入導出到一個共同空間(如:FTP)
[/Quote]
额 原来鏈接服務器上关联用不到索引 (我自己也没好好想想,2台服务器关联查询怎么可能用到索引,囧)
我也要做与楼主一样的功能
不过数据量很少 也是链接服务器做
而且总数据基本只添加数据
定时删除数据直接调用远程的存储过程
总数据基本只做查询使用

期待大大门给个完美方案
shareach 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 xys_777 的回复:]
调用远程数据库的存储过程试了吗
[/Quote]
试过了,存储过程 没法关联查询,或者建立本地试图,改代码比较多
shareach 2010-06-22
  • 打赏
  • 举报
回复
这是前面基于sql server结构的构想,现在在数据实时性要求高的情况下基本不可用
http://www.cnblogs.com/yinpengxiang/archive/2009/11/16/1604128.html
这是前面使用数据读写分离的生产环境测试结果
http://www.cnblogs.com/yinpengxiang/archive/2009/12/23/1630178.html

完全依赖Sql server做数据结构优化,很多困难还是难以克服,需要结合系统数据层的操作才能完成,譬如:使用link server关联查询 需要50秒,OpenQuery方式40秒,用2边查出结果使用datatable Merge,基本都是几十ms消耗。

link server最新测试的一点记录:
远程服务器关联查询,会导致本地和远程索引都无法使用,特别使用子查询时候,基本都是表扫描

谢谢各位,散分
永生天地 2010-06-22
  • 打赏
  • 举报
回复
调用远程数据库的存储过程试了吗
shareach 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 claro 的回复:]
........
这里做个假设,排除一切硬件问题。
比如VPN+光纤,多数据库集群且负载均衡。
然后谈Link Server 。
个人分析这与数据更新频率等同样有密切关系。
[/Quote]
sql server做集群是完成不了负载均衡的,只是热备了; 硬件没有问题,是集中式数据库,分布在多台机器上,1G 连接速率。

[Quote=引用 36 楼 jaimejth 的回复:]
你用link server,在数据量不多的情况还可以接受,当数据量多,特别是表与表的关联查询,这个开销非常的大.不适合大数据量的查询.你负载均衡可以用其它方式.根据你对数据的实时要求.不知你数据的实时要求非常高吗?及时,还是可以延时,如果延时可以延时多少时间.
按你现在的情况,如果想提高速度.可以考虑在每次查询时,可以考虑将数据先使用链接服器将数据拉到本地,然后关联查询.这样效率要高些,速度也要……
[/Quote]
实时要求很大,前面做了数据库读写分离,采用数据复制,最后就是因为延迟太大而无法完成。
OpenQuery 就是拉到本地啊。 系统改造量比较大。呵呵
gexing100688 2010-06-22
  • 打赏
  • 举报
回复
没有实际经验 顶
jaimejth 2010-06-22
  • 打赏
  • 举报
回复
如果有举趣可以MSN聊聊.
我的博客:http://blog.csdn.net/jaimejth
jaimejth 2010-06-22
  • 打赏
  • 举报
回复
你用link server,在数据量不多的情况还可以接受,当数据量多,特别是表与表的关联查询,这个开销非常的大.不适合大数据量的查询.你负载均衡可以用其它方式.根据你对数据的实时要求.不知你数据的实时要求非常高吗?及时,还是可以延时,如果延时可以延时多少时间.
按你现在的情况,如果想提高速度.可以考虑在每次查询时,可以考虑将数据先使用链接服器将数据拉到本地,然后关联查询.这样效率要高些,速度也要快一些.你可试试.
claro 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dawugui 的回复:]
Link Server 是什么?

友情帮顶.
[/Quote]呵呵,猜是指远程链接。

这里做个假设,排除一切硬件问题。
比如VPN+光纤,多数据库集群且负载均衡。
然后谈Link Server 。
个人分析这与数据更新频率等同样有密切关系。
超维电脑科技 2010-06-21
  • 打赏
  • 举报
回复
shareach 2010-06-21
  • 打赏
  • 举报
回复
自己up一下
shareach 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 xys_777 的回复:]
select * from openquery(remoteServer, 'select Select tc1.col1,tc2.col1 from dbName.dbo.T_C1 tc1 join dbName.dbo.T_C2 tc2 on tc1.col=tc2.col1')

这样不行吗,openquery比直接访问链接服务器的速度快不止一倍啊
[/Quote]
openQuery是可以的,但是select * from openquery(remoteServer, 'select Select tc1.col1,tc2.col1 from dbName.dbo.T_C1 tc1 join dbName.dbo.T_C2 tc2 on tc1.col=tc2.col1 where tc2.col1='+@colValue)
就没法了,需要重组sql语句成字符串,用exesql去执行
[Quote=引用 23 楼 trance 的回复:]
本人纯粹猜想,我觉得是否可以用复制分发来处理这样的问题呢?
[/Quote]
不行的,我前面用了复制分发,读写分离处理测试,我们并发数据太大,数据严重滞后
poloyzhang 2010-06-18
  • 打赏
  • 举报
回复
这个是不是建立了VPN, 加密隧道之类的..............................
进行数据传输方面的服务器,传输数据优化也是很好的.
Trance 2010-06-18
  • 打赏
  • 举报
回复
本人纯粹猜想,我觉得是否可以用复制分发来处理这样的问题呢?
KLL 2010-06-18
  • 打赏
  • 举报
回复
jfzr
shareach 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 roy_88 的回复:]
鏈接服務器上表用不到索引,效率當然會低。
數據量大時,不推薦。數據量少時可用鏈接服務器。最好用一個小程序導入導出到一個共同空間(如:FTP)
[/Quote]
中间层应用更新,只是改动代码比较多。

[Quote=引用 30 楼 xys_777 的回复:]
改存储过程?
可以试试,调用远程的存储过程
测试看看
[/Quote]
是的,可以,直接抓远程数据结果,其实直接查询效率还是可以承受(毕竟不肯能拉9w数据的),就是需要关联式的更新比较恐怖。
中国风 2010-06-18
  • 打赏
  • 举报
回复
鏈接服務器上表用不到索引,效率當然會低。

數據量大時,不推薦。數據量少時可用鏈接服務器。最好用一個小程序導入導出到一個共同空間(如:FTP)
永生天地 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 yinpengxiang 的回复:]
引用 28 楼 xys_777 的回复:
那没什么办法,就得改为存储过程

改存储过程?
[/Quote]

可以试试,调用远程的存储过程

测试看看
shareach 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 xys_777 的回复:]
那没什么办法,就得改为存储过程
[/Quote]
改存储过程?
永生天地 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 yinpengxiang 的回复:]
我的目的是使用分库分服务器(各城市数据库-按列的值)水平分区来处理大数据问题,一台服务器的扩展性很差,现在水平分区是实现了,但是出现了link server方式远程查询和远程扫描的开销比我一台服务跨数据库查询的开销大几十到几千倍的问题,特别对大数据表查询和更新,跨库查询几秒钟完成的,跨服务器(link server)查询需要几分钟
以上测试都在同一台机器上测试的,所以也不存在网络带宽的问题
跨……
[/Quote]
那没什么办法,就得改为存储过程
加载更多回复(23)

27,579

社区成员

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

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