【问题标题】:Is there a way to prefetch LOBs data in occi?有没有办法在 occi 中预取 LOB 数据?
【发布时间】:2019-07-14 00:44:48
【问题描述】:

我正在开发一个使用 Oracle 作为数据库的 C++ 应用程序,并尝试获取数千条具有 CLOB 数据类型的记录。
一直在网上搜索如何在 OCCI 中预取 CLOB 数据类型,但总是看到“如果 LONG、LOB 或不透明类型列(例如 XMLType)是查询的一部分,则预取无效。”

OCCI 中是否有方法可以预取 CLOB,或者是否有其他替代解决方案可以缩短获取 CLOB 数据所花费的时间? 感谢您的帮助。

【问题讨论】:

    标签: c++ clob prefetch occi


    【解决方案1】:

    有一种方法可以做到这一点,我们大量使用它来优化跨 WAN 加载具有 CLOB 列的表

    不是将数据作为 CLOB 列提取,而是将其转换为 varray(16)varchar(32767)

    select clob_to_str_array(clob_column) from table_name;
    

    在这种情况下,OCCI 将返回vector < std::string >。通过这种方法,我们将加载时间从 15 分钟缩短到不到 10 秒

    我认为这是我有史以来最好的优化之一,但我这样做只是因为避免 CLOB 为时已晚

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 2012-03-17
      • 2016-01-03
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2019-06-03
      • 2019-04-04
      • 1970-01-01
      相关资源
      最近更新 更多