通过链接服务器传输最快的数据

时间:2013-05-20 07:43:15

标签: sql sql-server stored-procedures

在链接服务器之间传输数据时,到目前为止我已经使用了几种方法。

我想知道是否有一种可接受的最快/最有效的方式来处理这样的任务?或者是否应该使用另一种情况的不同情况?

我用过:

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

经过一些'谷歌搜索'后,我还没有得到明确答案......还是有其他选择?

1 个答案:

答案 0 :(得分:2)

重要的是确保远程查询实际上是远程执行的。

这个与临时表/ sp路由一起发生。

对于其他2个选项,它可以在任何排序/过滤等之前在本地提取所有数据。 是否这样做取决于链接的服务器设置。但是他们也有其他缺点

  • 您无法通过OPENROWSET控制链接服务器设置,因为它是adhoc
  • OPENQUERY和OPENROWSET不允许参数:只有字符串常量

因此,选项3是最佳路线

更多信息,请参阅