2

我有一个名为Table的表,其中包含列:

  • ID(int,主键,聚集,唯一索引)
  • 文本(varchar 15)

在名为LS的 MSSQL 链接服务器上。链接服务器位于同一台服务器计算机上。和:

当我打电话时:

SELECT ID, TEXT FROM OPENQUERY(LS, 'SELECT ID, TEXT FROM Table')

它需要400 毫秒

当我打电话时:

SELECT ID, TEXT FROM LS.dbo.Table

需要200 毫秒

当我在 LS 服务器上直接调用查询时:

SELECT ID, TEXT FROM dbo.Table

它需要100 毫秒

在许多地方,我读到 OPENQUERY 更快,但在这种简单的情况下,它似乎不起作用。当我从另一台服务器而不是 LS 直接调用它时,我能做些什么来使这个查询更快?

4

1 回答 1

1

如何SELECT ID, TEXT FROM OPENQUERY(LS, 'SELECT ID, TEXT FROM dbo.Table')通过使用模式使查询等效?

无论如何,请阅读Linchi Shea关于链接服务器的这篇文章

注意:链接服务器调用总是比直接调用慢。从 SQL Server 到您的 SSMS 现在首先要通过另一个 SQL Server 实例,所以它当然会慢一些。

于 2010-03-21T12:37:07.647 回答