【问题标题】:Excel 32bit vs OLEDB vs OracleExcel 32bit vs OLEDB vs Oracle
【发布时间】: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 的方法是什么?

【问题讨论】:

    标签: excel vba oracle oledb


    【解决方案1】:

    MSDAORA 不再适用于 Oracle 19。但是,这意味着 Oracle 客户端版本 19。如果数据库是 19 并且客户端是 12.2 或更低版本,它应该仍然可以工作(但当然不推荐)

    ODBC 驱动程序呢?当然,来自 Oracle 的 ODBC 驱动程序。

    或查看How to connect to Oracle 11 database from . net 并检查第三方提供的驱动程序之一。

    【讨论】:

    • ODBS 和 .NET - 一条路要走,但我们有数十甚至数百个基于 OLEDB 连接的现有报告。从 MSDAORA 切换到 OraOLEDB 很容易,但从 OLEDB 切换到 ODBC 连接相当耗时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 2011-01-08
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多