2016-08-14 82 views
1

我是jOOQ的新手,并考虑用jOOQ替换一些JDBC代码。jooq流是异步的吗?

看看jOOQ Java 8流是例子,我开始想知道如果我可以通过使用jOOQ来获得性能改进。

我有此特性的PostgreSQL的查询: 合并联接(成本= 1.34..7649.90行= 30407宽度= 333)(实际时间= 0.042..46.644行= 28264个循环= 1)

在数据库服务器第一行在0.042毫秒后返回,而最后一行在46.644毫秒后返回。

但是我的JDBC直到完成后才返回ResultSet。

jOOQ(带有Java 8流)是否能够在准备就绪或被JDBC限制时立即开始处理元组?

回答

1

jOOQ的Java 8集成有两个方法,可能是有趣的你:

截至jOOQ 3.8,这两个API都受底层JDBC API的阻塞性质的限制,即两个API在ResultSet.next()内部迭代。

特别是,你可以通过设置打开使用服务器端游标:

// JDBC 
statement.setFetchSize(50); 

// jOOQ, which delegates this call to JDBC 
quest.fetchSize(50); 

又见Statement.setFetchSize()this question了解更多详情。