【发布时间】:2013-12-11 05:11:42
【问题描述】:
我们将数据以序列化的形式存储在 Oracle 表中。保存序列化数据的列是 BLOB 类型。我们确实有一个存储过程来查询表并将结果作为 sys_refcursor 返回。存储过程接受逗号分隔形式的键列表,用于获取 Blob。
环境 - JRE 1.6 甲骨文11g
问题:当应用程序请求 8 或 10 行的数据时,我们希望存储过程在单个 db 往返中返回所有带有二进制数据的结果行。这可能吗?或者以最少的数据库往返获取结果的最佳方法是什么。
(我们已将 fetchRowsize 设置为 10,以便获取多行。我们还将 setLOBPrefetchSize 设置为足够大的值(3 Meg)。但是这些似乎没有区别。resultSet.getBytes()花费大量时间表明数据是按请求获取的)
我错过了什么?我们是否有任何跟踪来启用/检查下面发生的事情?
【问题讨论】:
标签: java oracle jdbc oracle11g