c++ - 有没有办法在 occi 中预取 LOB 数据?

标签 c++ clob prefetch occi

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

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

最佳答案

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

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

select clob_to_str_array(clob_column) from table_name;

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

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

关于c++ - 有没有办法在 occi 中预取 LOB 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784447/

相关文章:

c - 如果预取无效地址会怎样?

caching - 如何正确使用预取指令?

c++ - 函数 "was not declared in this scope"

c++ - 结合 boost 范围算法,例如。 boost::copy 和 boost::remove_if

c++ - 与 CLOB 兼容的 Pro-C 缓冲区类型

sql - 如何将empty_clob()从java插入Oracle

Oracle LOB 未内联存储

c++ - 通过地址获取变量名

Python C++ API - 重载参数数量可变的函数

javascript - 使用 javascript 预取加载外部数据集