目前的问题:
数据库A中有一批表(A1,A2,A3.......),现在需要将其转移到数据库B中,由于A库中 表的数据在不停的增加,现在想做增量将A库中的数据导入到B库中,就需要判断哪些数据时新增的,目前想到的解决方法有一下三种:
1、直接在数据库A的表中增加一个标记字段,如果已经转移了的数据就标记一下,由于A库中表的数据量很大(至少千万级以上),这种更新会很慢,效率太低
2、根据数据库中的时间字段来查找,按时间戳来判断哪些数据已经被转移,但是这种数据过程如果遇到表中没有时间字段的表,就需要人为加一个时间字段,另外还要添加一个起止时间的维护表,记录哪次取了哪个时间区间的数据
3、利用SQLSERVER2008企业版中的CDC功能将变更的数据存在cdc创建的中间表,然后从这个表中去取增量数据,虽然依然是要时间段来取,但是它会自动保存上一次取之后的最大序号
目前来说,最好的方法好像是第三种,利用SQLSERVER2008企业版中的CDC功能,但是企业版太贵啊,有没有sqlserver标准版就能解决此问题的方法,请各位指教,谢谢
Hi flymolgee,如果你用ssis来导增量的话,那么你可以为原表加个rowversion类型的列,根据它来做数据同步。