我已经创建了一个已经增长到大约250个表(Staging Tables,Dimension Tables和Fact Tables)的ETL。SQL Server集成服务 - 内存不足异常
我从Stacia Meisner那里获得了ETL设计模式,她的ETL设计模式基于创建模板包来加载临时表,加载维度表,然后加载事实表。这个想法是使用您在特定包中设置的变量,然后调用相应的存储过程,创建沿袭和审计数据,使用表达式填充正确的表等,以便将模板包复制并粘贴到解决方案中,编辑该变量,只要你有存储过程来源数据和正确的表名,一切都完美。
这是......直到我达到250张桌子。当我在BIDS中运行ETL时,它会疯狂地消耗RAM。当我部署ETL并在SQL中执行它时,它不会。我的笔记本电脑上运行的一个ETL可能会消耗大约3到4 GB的RAM,因为它会从父包打开我的每个子包。我的解决方案中现在有250个软件包。我可以在我的笔记本电脑上(现在坐在8GB或RAM上)使用RAM,但是我的脑海中肯定会发出警告警报,这让我认为250个数据流任务可能是更好的选择。
了解缺陷在这种设计模式,现在,我想,那么我的问题如下
- 当时BIDS曾经为了有一个ETL内执行这么多的包?
- 当我在IDE中运行ETL时,有什么办法可以减少RAM的消耗?
- 是否需要RAM的消耗,如果是的话,开发人员通常如何处理它。我可以很容易解决它,因为从不在我的IDE中运行整个ETL,但是在它的部分中测试它,然后全部部署它
- 我应该逐步离开每个表设计模式的1个包并实施数据流任务3个包(1个用于加载临时表,1个用于加载尺寸,1个用于加载我的事实表)
感谢您的时间,我很感激您输入的内容。
问候,
杰西
感谢乔,我非常感谢你的反馈。我同意你提到的一切。 –