SSIS - OLE DB目标 - 表或视图加载与快速加载

Ram*_*lez 12 ssis data-warehouse sql-server-2008-r2

从我读过的内容:

表或视图数据访问模式一次提交每一行作为事务.因此,制作一个包传输500万行需要很长时间(30多分钟).

快速加载数据访问模式允许在插入目标时指定批处理行和提交大小.例如,插入500万条记录只需2分钟.

现在出现的问题是加载到DW的SSIS包之一在OLE DB目标中使用表或视图数据访问模式.根据我的理解,这是为了获取它插入的错误行(错误约束)到错误记录表中.因此,我们有一个超过30分钟的过程.反过来,对于相同的动作,快速加载将花费不到2分钟.

如果我理解正确,快速加载将无法区分哪一行导致批处理中的错误,而这又导致批处理完全失败?如果是这样,是否有另一种方法来处理这种情况,其中具有错误行的批处理由错误约束重定向,然后以批处理中的良好记录发送到正确的目的地的方式工作到目标,同时仍然发送错误记录到错误日志表中?即使这样做也是个好主意吗?是否更好地咬一口关于它需要的时间?

先感谢您.

bil*_*nkc 12

我在那种情况下所看到的是一种连锁失败的方法.尝试在连续较小的批次中插入OLE DB目标,以尝试在启动单例插入之前获得尽可能多的批量模式.

假设您的提交大小为10k行(任意数量,测试您的情况等).将失败的行重定向到OLE DB目标,仍处于快速加载模式但提交大小为2.5k行.添加另一个ole db目标,提交大小可能为100,然后具有处于RBAR模式的最终目标.然后,您可以识别出失败的行并执行任何需要执行的操作.