加快链接服务器

时间:2016-04-25 04:59:18

标签: sql-server

我正在尝试将大小约为5000万行的表复制到链接服务器上的另一个数据库中。它没有任何索引(虽然我不认为这应该有所作为)。我使用了以下查询:

select * into [db2].[schema].[table_name] 
from 
openquery([linked_server_name],
'select * from [db1].[schema].[table_name]') 

大约需要7分钟。

对于我打算简单复制和粘贴的内容,这似乎很可疑。我错过了什么吗?

我需要定期运行它,并且最好保持尽可能自动化(使用SISS的服务器之间的手动复制表不是理想的)

任何想法都将受到高度赞赏!

非常感谢

2 个答案:

答案 0 :(得分:1)

这里可能存在许多不同的原因,每个原因都会对“慢慢”产生累积影响。

查看wait states将是第一个停靠点。

索引(至少在选择方面)这里不是问题,没有使用谓词(在较小程度上使用所有列)因此你会如何期望索引有用?

我想说行数不是一个有用的指标......源数据集的MB / GB有多大?使用"包括客户统计"在SSMS中获得准确的数量。现在,如果那是“大”'如何通过网络拖动相同大小的.zip文件?

答案 1 :(得分:0)

如果没有表的索引,SE​​LECT查询就会很慢。索引有助于提高选择查询的性能。索引会减慢INSERT查询的速度,因为它们必须添加数据并同时对其进行索引。相反,索引创建会提升SELECT查询。

此外,您的数据本质上是复制交易还是可以取消脏读?如果脏读是正常的,那么您可以在SELECT查询中使用WITH(NOLOCK)来避免和交易问题。