社区
应用实例
帖子详情
Link Server 远程开销 效率问题
shareach
2010-06-17 01:44:32
我用分数据库方式解决sql server服务器负载问题,采用多个城市数据库,一个总的用户数据库,在每个城市数据库服务器建立链接服务器;负载是均衡了,但是同时产生了远程查询开销过大的问题(基本都占70%以上,甚至90%以上的效率),我记得以前 用link server的方式没有这么大的远程查询开销,请高手出马。。谢谢
...全文
431
43
打赏
收藏
Link Server 远程开销 效率问题
我用分数据库方式解决sql server服务器负载问题,采用多个城市数据库,一个总的用户数据库,在每个城市数据库服务器建立链接服务器;负载是均衡了,但是同时产生了远程查询开销过大的问题(基本都占70%以上,甚至90%以上的效率),我记得以前 用link server的方式没有这么大的远程查询开销,请高手出马。。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
路过等高手
解决问题
asp 的优化问题
http://topic.csdn.net/u/20100621/18/e6631600-f2cd-48a6-903f-2270748f6994.html?93349
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)
友盟-U-
Link
智能超链
虽然开发者可以自己配置实现Deep
link
技术,但是现实中还是会遇到很多
问题
。比如进行资源配置、兼容性适配、模糊匹配等事情,会耗费大量的人力和维护成本,实现起来相当复杂。因此集成U-
Link
SDK可以大大缩短开发...
Postgresql
Link
ed
server
远程
服务器取数据的执行计划原理
postgres_fdw通过在
远程
服务器上执行查询来检索
远程
数据,因此理想的扫描一个外部表的估计代价应该是在
远程
服务器上完成它的花销,外加一些通信
开销
。得到这样一个估计的最可靠的方法是询问
远程
服务器并加上一些通信...
KingbaseES数据库使用kdb_database_
link
扩展常见
问题
KingbaseES数据库使用kdb_database_
link
扩展常见
问题
kdb_database_
link
主要功能是为了满足@
link
语法的适配,让用户应用的代码能够适用于更宽泛的产品而无需在移植时大量修改。 支持连接管理,在适当的时候关闭连接...
sql
server
高可用_SQL
Server
2019常规可用性和安装概述
sql
server
高可用 介绍 (Introduction) On November 4th, 2019, during the Ignite conference at Orlando, Microsoft released the General Availability of its flagship product Microsoft SQL
Server
2019. ...
解决Lost connection to MySQL
server
during query错误方法
昨天使用Navicat for MySQL导入MySQL数据库的时候,出现了一个严重的错误,Lost connection to MySQL
server
during query,字面意思就是在查询过程中丢失连接到MySQL服务器。 [Msg] Decompressing... [Msg] Table ...
应用实例
27,579
社区成员
68,558
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章