【发布时间】:2011-08-23 06:51:40
【问题描述】:
我需要整合来自 30 个数据库和 20 个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有 30 个数据库源,它们从每个数据库的 1 个表中获取数据,然后插入 1 个目标。这不起作用,因为没有足够的内存。我试图过滤数据以忽略不会使用的数据 - 它没有帮助。这些任务应该每天执行。整个 Consolidation db 被删除然后插入新数据,这意味着每天插入大量数据。有人对如何处理内存问题有建议吗?
目前我看到的唯一解决方案是创建 20 个包。每个包将有 30 个数据流。每个数据流只能从一个数据库中获取数据。但是话又说回来,我不知道执行顺序是什么?一个包的数据流是同时开始执行还是一个接一个地执行?
编辑:
我就是这样做的……这是控制流的屏幕截图:
数据流截图:
我为所有数据库中的一张表创建了一个包。在这种情况下,每个数据流从表中获取 4 年前的数据并导入到源数据库。问题是我在一个数据库中有一个表,它有太多数据并且它返回错误:
缓冲区管理器对 10484608 字节的内存分配调用失败, 但无法换出任何缓冲区以减轻内存压力。 20 考虑了缓冲区并锁定了 20 个。要么内存不够 管道可用,因为安装不足,其他 进程正在使用它,或者太多的缓冲区被锁定。
有什么建议吗?
【问题讨论】:
-
完全一样的结构,每天执行一次。
标签: architecture ssis workflow ssis-data-flow