【发布时间】:2010-11-05 14:02:31
【问题描述】:
首先,我在这里描述的是已经存在的大型 ETL 流程的一小部分。所以,请不要建议移植到 SSIS 或其他环境,因为我不能。
在这个 ETL 过程中,对于正在插入的 SQL server 数据库中的每个表,我是:
- 将所有相关的 xml 加载到 XElement 对象中
- 然后将 xml 转换为类型化的数据集数据表
- 然后使用 SqlBulkCopy 对象快速将数据插入到 sql server 表中。
但是,对于一个表,当我创建 XElement 时,我得到了 OutOfMemory 异常。
所以,我现在需要以块的形式迭代地处理数据,但我不确定执行此操作的最佳方法。 xml 文件存储在运行 ETL 进程的同一台机器上。
感谢您的帮助。
更新
我开始阅读我从未使用过的 XmlReader 类。如果有人认为这是答案,请说出来并提供任何指导。
【问题讨论】: