当前位置: 首页 > 知识库问答 >
问题:

对于来自oracle留档的流类型,JDBC提取大小重置为1

华森
2023-03-14

来自Oracle JDBC文档(https://docs.oracle.com/cd/E11882_01/java.112/e16548/oraperf.htm#JJDBC28782)

如果结果集中的某一列的数据类型为LONG、LONG RAW或通过数据接口返回的lob,即流类型,则JDBC会将语句行预取设置更改为1,即使您从未实际读取过这些类型的值。

如果未为ResultSet提供fetch size,则默认情况下等于语句fetch大小。

如果我的 ResultSet 包含流式处理类型,那么结果集提取大小是否也会在下次 DB 行程中重置?如果是,我们如何保持结果集大小?

我在几个项目中使用spring-jdbc,spring可以处理这个问题吗?

共有1个答案

吕翰飞
2023-03-14

如果你获取的列是一个LONG或者LONG_RAW,那么不管你使用什么样的获取大小,驱动程序都会一个接一个的获取行。如果您想知道,“通过数据接口返回的LOB”是您使用defineColumnType定义为LONG的LOB。有一个名为“useFetchSizeWithLongColumn”的连接属性,如果设置为“true ”,将会改变这种行为,但请记住,LONG或LONG_RAW可能大于1gb,因此如果您获取10个这样的属性,将会消耗驱动程序中的大量内存。

 类似资料:
  • 根据http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html返回,如果被调用。 此方法返回后,对isDone()的后续调用将始终返回true。 但是,有可能任务正在运行并且设置为。那么,在调用之后应该返回什么?因为取消(这是错误的)而返回? 此外,尚不清楚方法是否返回。 P、 我正在实现一些简单的线程池,所以

  • 我正在使用输入流对象来计算某个文件的 Md5。我标记流 稍后我重置流。但是,对于大文件,会出现以下异常... 例外情况 我已经尝试过用这种方式关闭流并重新打开它..只是得到一些如下的异常: 然而,当我尝试重新使用新检索的InputStream时,出现了以下异常。

  • 我在cassandra设置中有“commitlog_segment_size_in_mb: 32”,但下面的错误表示最大尺寸为16777216,约为16mb。我在看修复下面错误的正确设置吗? 我指的是基于 http://mail-archives.apache.org/mod_mbox/cassandra-user/201406.mbox/<53A40144.2020808@gmail.com>中

  • 我是Java的初学者,刚开始使用Intellij作为我的IDE。 当我使用它时,有时会延迟。 我更改了我的 xms 和 xmx 以获得更大的堆大小(xms = 1024,xmx = 2048),但它抛出了一个错误。 所以,我把它回滚了。 错误消息是这样的:“初始堆大小设置为大于最大堆大小的值”。 有什么问题? 如果可能,如何增加最大堆大小? 我用的是笔记本电脑,它有8GB内存。x64Intelli

  • 长话短说:java.io包中有多少种基于数据流的流?它们是字节流和字符流还是二进制流和字符流? 完整问题: https://youtu.be/v1_ATyL4CNQ?t=20m5s昨天看了本教程后跳到20:05,我的印象是基于数据流有两种类型的流:BinaryStreams和CharacterStreams。今天,在了解了更多关于这个主题的知识之后,我的新发现似乎与旧发现相矛盾。 互联网上的大多数