【发布时间】: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