【问题标题】:How to optimize simple linked server select query?如何优化简单的链接服务器选择查询?
【发布时间】:2010-03-16 08:36:42
【问题描述】:

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

  • ID(整数、主键、聚集、唯一索引)
  • 文本(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 调用此查询时,我该怎么做才能使该查询更快?

【问题讨论】:

  • 只有当链接服务器属于不同类型(例如 Oracle)时,我才需要使用 OpenQuery。差异总是那么明显,即。 x2?如果您要发送更大的查询以请求更多数据/更重的过滤器,那么开销是否标记为?
  • @CResults - 当过滤器更复杂时,开销更大,差异来自几次试验的平均值。特定查询有非常不同的时间。

标签: sql-server tsql performance linked-server openquery


【解决方案1】:

SELECT ID, TEXT FROM OPENQUERY(LS, 'SELECT ID, TEXT FROM dbo.Table') 如何使用架构使查询等效?

无论如何,请阅读article from Linchi Shea 了解链接服务器

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

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多