【问题标题】:Linked server strange performance issue on a client server客户端服务器上的链接服务器奇怪的性能问题
【发布时间】:2015-12-18 16:20:29
【问题描述】:

我对 SQL Server 机器上的链接服务器有一个奇怪的问题。我有一个 Master SQL Server 和两个相同的 Client SQL Server。在客户端机器上有一个名为 MASTER 的链接服务器。客户端机器使用此链接服务器将其数据同步到主数据库。

问题是;查询在客户端 1 上运行良好。但是,客户端 2 上的相同查询比第一个查询慢 20 倍。机器是相同的,其他情况似乎正常。我认为存在基于网络的问题,但不确定。顺便说一句,两台机器上的数据大小几乎相同。

我的示例代码如下。在客户端 1 上,每条打印线显示 50-100 毫秒,但在客户端 2 上显示 500-750 毫秒

declare @i int =0
declare @ID int 
declare @Start datetime
declare @End datetime

set @Start=getdate()

while (@i<10)
begin

        Select Top 1 @ID=ID from [MASTER].[MYDB].[dbo].SYNCDATA

        set @End=getdate()
        PRINT CAST(datediff(ms,@start,@End) as varchar)
        set @Start=getdate()

        RAISERROR ('', 0, 1) WITH NOWAIT

        set @i=@i+1
end

如果有人以前遇到过这样的问题,也许给我一些解决问题的线索......

谢谢,提前

凯南

【问题讨论】:

  • 我对链接服务器的体验是,openquery 值得花费额外的时间和精力。
  • Openquery 可能会提供更好的结果。但在这种情况下,我认为结果不会改变。正如我所说,相同的查询性能在两个客户端之间是非常不同的。

标签: sql sql-server performance linked-server


【解决方案1】:

在物理宇宙中没有什么是完全相同的 :) 两台客户端机器的内存或网络连接可能不同,也可能是 SQL 客户端驱动程序的版本,或一百万个其他因素。 客户端服务器的位置怎么样。他们是在同一栋楼,不同的城市,也许他们通过不同的路由器连接,一个比另一个慢。这里的变量太多了,如果没有物理访问,就无法调试。

【讨论】:

  • 所有机器都在同一个网络和位置,机器也是VMware。
最近更新 更多