在Statement和ResultSet接口中都有setFetchSize方法

void setFetchSize(int rows)

throws SQLException

查看API文档

Statement接口中是这样解释的:

为 JDBC 驱动程序提供一个提示,它提示此 Statement 生成的 ResultSet 对象需要更多行时应该从数据库获取的行数。指定的行数仅影响使用此语句创建的结果集合。如果指定的值为 0,则忽略该提示。默认值为 0。

ResultSet中是这样解释的:

为 JDBC 驱动程序设置此 ResultSet 对象需要更多行时应该从数据库获取的行数。如果指定的获取大小为零,则 JDBC 驱动程序忽略该值,随意对获取大小作出它自己的最佳猜测。默认值由创建结果集的 Statement 对象设置。获取大小可以在任何时间更改。

网上有下面这样的一段摘录1:

缺省时,驱动程序一次从查询里获取所有的结果。这样可能对于大的数据集来说是不方便的, 因此JDBC 驱动提供了一个用于设置从一个数据库游标抽取若干行的 ResultSet 的方法。在连接的客户端这边缓冲了一小部分数据行,并且在用尽之后, 则通过重定位游标检索下一个数据行块。

摘录2:

setFetchSize最主要是为了减少网络交互次数设计的。访问ResultSet时,如果它每次只从服务器上取一行数据,则会产生大量的开销。setFetchSize的意思是当调用rs.next时,ResultSet会一次性从服务器上取得多少行数据回来,这样在下次rs.next时,它可以直接从内存中获取出数据而不需要网络交互,提高了效率。 这个设置可能会被某些JDBC驱动忽略的,而且设置过大也会造成内存的上升。

另外在《Best practices to improve performance in JDBC》一文中也提及该方法的使用用于提高查询效率,有名词将之成为batch retrieval

最新文章

  1. Vue.js学习笔记(8)拖放
  2. _UICreateCGImageFromIOSurface 使用API
  3. javascript:让表单 文本框 只读,不可编辑的方法
  4. while循环中不支持循环使用curl
  5. Unbutu网卡驱动安装(Intel内置网卡8086:15b8)
  6. (转)Eclipse Shortcuts
  7. 洛谷 P3384 【模板】树链剖分
  8. STL --> map容器
  9. metasploit 教程之基本参数和扫描
  10. day1扩展作业
  11. 表单传值给@Controller
  12. git 中Pull/Request 的初步
  13. Linux - 执行命令与脚本
  14. Bootstrap学习记录-3.Badge、Breadcrumb、Buttons、 Button Group、Card、Carousel
  15. int(a) 和 (int &) a 及 数据存储地址的探究
  16. Netty 解码器抽象父类 ByteToMessageDecoder 源码解析
  17. 某软件大赛C#版考题整理——【多选题】
  18. git更新代码报错,error: The following untracked working tree files would be overwritten by ch
  19. 一个不错的nomad raw_exec && docker 运行例子(集成访问网关)
  20. 解决openssh TimeOut

热门文章

  1. PHP Framework MVC Benchmark 基准测试
  2. Linux:外网域名防火墙设置导致下载失败
  3. Android 查询 添加 修改 删除通讯录联系人示例
  4. I.MX6 sdio 设备注册及识别
  5. 安装YouCompleteMe时,编译依赖的python版本不对
  6. NOIP2009 靶型数独
  7. FINDSTR 命令使用详解
  8. Bootstrap-CSS:代码
  9. k8s关键性概念
  10. POJ1236【图的前连通(缩点)】