1

我正在审查一些用于在 oracle 数据库上处理 CLOB 的旧 Java/JDBC 代码。现有代码使用类似于此问题中提到的方法的方法。

我发现一篇文章说:

在 Oracle JDBC 10g 之前,为了在 JDBC 中操作 CLOB 数据,使用了 Oracle 扩展类 oracle.sql.CLOB。但是现在,Oracle JDBC 10g 有一些增强功能可以简化 JDBC 应用程序中的 CLOB 操作。这允许使用一些可用的标准 API 来处理大数据,而不是使用 Oracle 扩展类。

本文提供了有关此增强功能的详细信息的以下信息:

默认情况下,preparedStatement.setString() 方法将允许处理最多 32765 个字节的字符串。为了插入大于 32765 字节的数据,可以设置一个新引入的 Connection 属性——SetBigStringTryClob。这迫使preparedStatement.setString() 使用另一个新引入的方法,OraclePreparedStatement.setStringForClob()。

但是它警告:

... 以这种方式处理大量数据可能并不明智;流式传输数据是更好的选择。

但以上是该文章中唯一与性能相关的警告。我的问题是,如果我的代码中的所有 CLOB 访问都已经通过 String 对象完成,我是否应该担心这种方法更改可能导致的任何其他潜在性能问题?换句话说,我的应用程序没有使用流式传输提供的好处,因为它已经总是在 String 对象中加载 CLOB,因此上述警告可能会被忽略,因为我们目前的目标不是提高性能。由于切换到此技术,是否可能出现任何其他与性能相关的问题?

4

1 回答 1

1

你说的是多大?我经常处理内存中的短音频文件和网络图像,没有任何性能问题。这些都是千字节比例文件。我认为如果您运行兆字节大小,那么流式传输会更好。通过标准化的东西,现在使用流到 LOB 实际上非常容易。

于 2010-12-20T18:03:46.633 回答