切换服务器后将临时表保留在内存中?

时间:2013-02-22 17:21:38

标签: sql sql-server

如何在切换服务器后让#tempTable保持在内存中。这可能吗?

Select * 
into #tempTable
from dbo.table

我在服务器1中有数据要在服务器2中进行比较,但我只能访问服务器2(所以我不能只在那里移动我的数据),而服务器2中的表太大了移动到服务器1.这就是为什么我想知道如何在连接到新服务器后将临时表保留在内存中。

任何帮助将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:0)

您编写的内容是可能的,但它只是在表所在的服务器上创建一个临时表。

你可能想要:

select *
into #Server2Table
from server2.database.dbo.table

然后,您可以在复制它的同一连接上使用#Server2Table(例如SSMS中的相同窗口或相同的作业步骤或相同的存储过程)。如果您需要更长久的位置,请使用全局临时表(以##开头)或“真实”表。

这需要能够使用以下内容链接服务器:

sp_addlinkedserver server2

你可以在server1上运行它。也许你的DBA需要设置它。

我发现在将跨服务器表加载到临时表时,查询通常运行得更快。这是,因为临时表存储在内存中。这是因为有更多关于本地服务器上的表的信息供SQL优化器利用。

答案 1 :(得分:0)

您可以从查询中导出数据并将其导入第一台服务器上的数据库。您可以使用SQL Server导入/导出向导。有点复杂,但如果发生这种情况很多,你可以使用SSIS自动完成这一动作,甚至只需勾选“保存此包裹”即可。框。在第一台服务器中获得数据后,您可以随意使用它。