2016-08-14 85 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瞭解更多詳情。