在链接服务器之间传输数据时,到目前为止我已经使用了几种方法。
我想知道是否有一种可接受的最快/最有效的方式来处理这样的任务?或者是否应该使用另一种情况的不同情况?
我用过:
OPENQUERY
INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3
FROM OPENQUERY([server]......
OPENROWSET
INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3
FROM OPENROWSET('SQLOLEDB', 'Server=[server].......
TempTable / SP
INSERT INTO #Temp
EXEC [server].[db].[dbo].[storedprocedure] @Param1, @Param2
经过一些'谷歌搜索'后,我还没有得到明确答案......还是有其他选择?
答案 0 :(得分:2)
重要的是确保远程查询实际上是远程执行的。
这个将与临时表/ sp路由一起发生。
对于其他2个选项,它可以在任何排序/过滤等之前在本地提取所有数据。 是否这样做取决于链接的服务器设置。但是他们也有其他缺点
因此,选项3是最佳路线
更多信息,请参阅