关于链接服务器的问题
select *
from linkedsr.dbo.product pt
inner join linkedsr.dbo.Detail dt on ...conditionstatement...
其原理是不是从那个服务器取整个product和detail表到本地,然后做连接,那如果两张表很大是不是很不效率
select * from openrowset(''SQLOLEDB'','[ConString]','select * from product inner join detail on ..')又是怎样的原理呢
------最佳解决方案-------------------- 引用: select *
from linkedsr.dbo.product pt
inner join linkedsr.dbo.Detail dt on ...conditionstatement...
其原理是不是从那个服务器取整个product和detail表到本地,然后做连接,那如果两张表很大是不是很不效率
select * from openrowset(''SQLOLEDB''…… 补充一下,如果整个表取过来,那么带宽、存储空间都是想打当的挑战,链接服务器需要经过SQLServer、windows、网络等等多层验证,且数据不在本地磁盘,所以如非必要,还是不要经常或者常态化使用。openrowset其实是把操作封装起来,以简化用户的操作。
------其他解决方案-------------------- 没有整合,直接访问,就像远程访问一样,性能方面肯定会比访问同一个库要差
------其他解决方案-------------------- OPENROWSET函数给数据源传入一个连接串和查询来提取需要的数据,可以使用OPENROWSET函数从任何支持注册OLE DB的数据源获取数据。
------其他解决方案-------------------- 引用: 引用:select *
from linkedsr.dbo.product pt
inner join linkedsr.dbo.Detail dt on ...conditionstatement...
其原理是不是从那个服务器取整个product和detail表到本地,然后做连接,那如果两张表很大是不是很不效率
s……
这样解释的话我有些懂了,但是分公司总公司库在不同服务器上,这种要跨服务器来join大数据表确实很慢
------其他解决方案-------------------- 引用: 引用:引用:select *
from linkedsr.dbo.product pt
inner join linkedsr.dbo.Detail dt on ...conditionstatement...
其原理是不是从那个服务器取整个product和detail表到本地,然…… 那你要用复制技术了,可能用合并复制比较合用。