【发布时间】:2020-06-08 13:49:40
【问题描述】:
环境:拥有数百名员工的小型企业使用 Excel 并使用 DWH 数据。
场景:每天通过 Oracle OLEDB 提供商将数据从 Oracle DWH 刷新到 32 位 Excel
问题:对于大型数据集(数十万行),Excel 会占用超过 3GB 的 RAM 并崩溃
已测试:相同数据使用不同的 Excel 版本(2013、2016、32 位、64 位)、不同的 OLEDB 提供程序(MSDAORA、Oracle 12.1 - 19)
调查结果:
- MSDAORA 占用的内存要少得多,但速度很慢,而且多年来一直不受支持。更糟糕的是 - 有传言称它不适用于 Oracle 19 DB,我们将在几个月后升级到 19。
- OraOLEDB 32 位 - 在 12.1 版之前它运行良好,因为 12.2 的内存消耗要大几倍,因此 32 位 Excel 通常会崩溃。
- OraOLEDB 64 位 - 我测试了 v19,它工作得很好。但由于其他兼容性问题,我们所有用户都不太可能获得 64 位 Excel。
- 已测试连接字符串中的 CacheType=File 参数,但它没有执行任何操作...
问题:
- 您是否遇到过同样的问题?
- 您对此有解决方案吗?
- 您将数据从 Oracle DB 提取到 Excel 的方法是什么?
【问题讨论】: