0

这与版本 1.3.165 在检索其行包含一个或多个CLOB的远程(TCP/IP 连接)结果集时遇到的问题相同。版本 1.3.166 中的修复是将用于保存远程CLOB的缓存大小设置为SysProperties.SERVER_RESULT_SET_FETCH_SIZE * 2。这带来了一个新问题:

我的特定表恰好每行有 5 个CLOB,所以除非我知道总是在客户端调用setFetchSize ,并根据每行的CLOB数量为给定的结果集。

在版本 1.3.165 中,当缓存大小设置为SysProperties.SERVER_CACHED_OBJECTS时,我可以在心里将SERVER_RESULT_SET_FETCH_SIZE的默认值乘以某个因子,该因子表示我希望在我的任何结果集中拥有的每行CLOB的最大数量,并且然后在服务器端相应地设置SERVER_CACHED_OBJECTS并忘记它。这也将允许我对所有查询使用默认提取大小,这可能会更有效。所以我已经回落到 1.3.165。

4

1 回答 1

0

恐怕这是一个不容易解决的限制。我会将默认大小更改为SysProperties.SERVER_RESULT_SET_FETCH_SIZE * 5,但这当然只是一种解决方法。真正的解决方案更复杂。一个问题是 LOB 需要在事务提交之前保持打开状态,而 TCP 服务器和客户端组件并不总是知道这种情况。

于 2012-04-24T19:55:21.500 回答