链接服务器选择长途跋涉

时间:2013-12-23 17:22:57

标签: sql-server linked-server

将一些复杂的报告sprocs移至中央服务器,时间从5秒到30秒以上。

通过以下方式验证需要花费的时间:

print '04 NWA Raw data Numeric'
print datediff(ss, @now, getdate())
set @now = GETDATE()

我试图仅通过这些查询提取本报告所需的内容:

  

10秒内1355行----

select * 
into #nwaDump
from [Phoenix].[NWA].dbo.QISDataNumeric
where rowguid in (
select rowguid from [Phoenix].[NWA].[dbo].[QISDataText] nd
where nd.DataValue in ( '41310291            ' ) 
)  
  

28秒内249行

select * 
into #nwaText 
from [Phoenix].[NWA].[dbo].[QISDataText] td
where td.DataValue in ( '41310291            ' ) 

在其他服务器上运行相同的两个查询< 1秒返回时间。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用OPENQUERY,因为它应该在链接服务器上创建过滤器,然后将它们拉到其他服务器:

SELECT *
INTO #nwaText 
FROM OPENQUERY(Phoenix,'SELECT * FROM [NWA].[dbo].[QISDataText] 
                        WHERE DataValue in ( ''41310291            '' )')