为了覆盖 SSIS 数据流中的内置 SCD 转换,我使用了列的校验和值和查找。下面是过程。
我需要在 Target_Fact_table 中实现 SCD 类型 1。
来源查询
Select key, a, b, CHECKSUM (a,b) new_value from Source_table
在查找中
Select key, CHECKSUM (a,b) Old_value from Target_Fact_table
如果未找到匹配项,则插入记录,如果找到匹配项,则比较 New_value 和 Old_value,如果有任何更改,则更新记录。
第一次运行没有任何问题。但是第二次当源有更多记录要更新和插入时,目标表将因为批量插入和更新而被锁定。
我尝试从OLE DB 目标任务中删除表锁,但仍然存在锁定。
我可以做些什么来避免这种锁定,或者我可以在更新转换中放一些小的延迟?