2016-08-14 5 views
1

私はjOOQが新しく、JDBCコードをjOOQで置き換えることを検討しています。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によってjOOQが制限されていますか? 、jOOQ 3.8のようCompletionStage

を返しStream

  • fetchAsync()を返し

  • 答えて

    1

    jOOQのJava 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を参照してください。

    関連する問題