我正在尝试优化从我们的本地环境到托管环境复制sql数据的方式。
每天工作人员都会对我们当地环境中的几张表进行更改,并且在一天结束时,这些更改需要传递到我们的托管环境。有很多数据被转移,但我只是推动。
我目前正在使用链接服务器并从一个表中选择并插入到另一个表中。
insert into table a
select * from server.db.dbo.table
where server.db.dbo.table.column in (select column from b)
我阅读了批量插入,但这似乎只是一种从文件插入数据库的方式。有多个表,我在一个事务下运行它,该事务锁定表并停止站点大约30分钟。
我目前正在考虑将数据存储在保存表中,然后从那里复制它。这要快得多。
有没有人有任何其他建议?
修改
请注意。我只需要推动表中的一些记录而不是所有记录。
答案 0 :(得分:0)
您需要同步完整数据库吗? 目标环境是R / O吗?
如果两个问题的答案都是肯定的,那么最简单的事情就是log shipping
,有一些技巧可以使目标数据库在日志传输之间可用于R / O.
如果只需要表格和那些表格作为R / O,我会寻找transactional replication
。
您也可以使用SSIS
作为@criticalfix建议