在项目中经常使用SQLServer的园友们,可能都知道SQLServer(2008为例)中有链接服务器,可以比较方便地解决从远程数据源获取数据的问题,但是对于使用这种方式的性能如何,似乎资料较少,希望园子里的高手能给解释下,或者提供一些资料也可以。
大体思路:
1.可否提供相关的资料,想了解下链接服务器的大概原理,尤其是性能方面的资料?
2.使用sp_testlinkedserver测试链接服务器连接情况,在断网情况下,大约需要46秒-52秒才会报错,如何做到及时报错?设置了链接服务器“属性”中的“连接超时”“查询超时”都不管用。
3.使用链接服务器进行多表关联,在大数据量下会比较慢,想了解下内部机理是怎样的,比如:
insert into tb_user(c_uid,c_uname,c_age)
select *
from test_srv.testdb.dbo.tb_passport a,test_srv.testdb.dbo.tb_user_info b
where a.c_log_id = b.c_user_id
and a.c_log_id='admin'
该多表链接的SQL,是不是都是先将远程表的数据先传到本地的临时表中,然后再执行表项匹配连接啊,尤其是大数据量下,可能会耗时数十秒。
由于这方面的资料,比较少,希望园友们多多赐教。
具体的内部执行顺序我不太清楚,只是提醒一下操作大数据量的时候千万千万不要用嵌套的子查询,一定要用连接,子查询的效率很低很低,远没有连接的效率高
一楼的回答离问题的主题差10800里