检索包含CLUB的100行后,程序仍会挂起

时间:2012-04-24 12:43:01

标签: h2

这是在检索远程(TCP / IP连接)结果集时,在版本1.3.165中遇到的问题,该结果集的行包含一个或多个 CLOB 。版本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。

1 个答案:

答案 0 :(得分:0)

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