我可以在这种情况下使用复制吗?

时间:2016-07-05 14:09:56

标签: sql-server replication database-replication transactional-replication

我支持datamart ...我被指示使用DW中的表格,这些表格位于我们通过链接服务器访问的另一个数据中心...

我建议使用复制,因为它对我来说最简单,但我没有被授权;现在,每当我们需要使用新表时,我发现自己正在执行此过程:

1-通过'sql server wizard'将整个表从DW复制到我们的DM。 2-在我的datamart中重新创建表格在DW中的索引。 3 - 我创建了一个像这样的SP ......例如:

DECLARE @SystemModStamp AS DATETIME   
 SELECT @SystemModStamp = MAX(SystemModStamp)
 FROM [dbo].[Lead]

 SELECT * INTO #temp   
 FROM [LinkedServer_DW].[SF].[dbo].[Lead]
WHERE SystemModStamp >= @SystemModStamp

 DELETE FROM [dbo].[Lead]         
 FROM [dbo].[Lead] AS L
INNER JOIN #temp AS t       
     ON L.Lead_id= t.Lead_id;       

INSERT INTO [dbo].[lead]
SELECT * FROM #temp

DROP TABLE #temp

4 - 将之前的SP放在每6小时运行一次的工作上。

我看到的问题是,当它开始时,它只是他们要求的几个表。现在我被要求每隔一天添加一个新表,现在我通过这个过程在我的数据集市上有大约80个表。

问题: - 这种方法好吗/专业? - 完成我花了几个小时的所有步骤,因为每一步都需要时间,而且我对我所做的每一个动作都格外谨慎。 - 有些表没有systemmodstamp或更新;所以我正在进行完全转移(放弃,并再次插入所有转移)。

无论如何,它们不是巨大的表,最大的表有5000万条记录......而且大多数都不到100,000条记录......

在这种情况下是否有任何理由不使用复制?

1 个答案:

答案 0 :(得分:1)

您正在重新实现看起来像快照复制的内容,但不会将MS的多年开发所需的所有考虑因素都纳入其中。哪个不是你的磕头。我不清楚为什么复制已经被解雇了。但是,与所有事情一样,似乎需要进行成本/收益分析。您知道目前这样做的成本是由您花费的时间和精力。如果提供方向的人要诚实,他们还会考虑实施快照复制和比较的成本。我的猜测是后者会出现在最顶层,因为你最终只是在一个出版物上添加一个表格并且关于设置的程度(即使有一个需要完成的初始设置)。