2012-08-08 53 views
3

我想用jooq我的java web項目簡單的SQL任何性能的領先,因爲從它的規格看起來簡單和良好的查詢生成器,但它擁有簡單的查詢或JAVA編寫的語句任何性能增益。是否jooq擁有在Java中

回答

3

不,它不提供性能增益。 JOOQ本身通過JDBC與數據庫通信(並使用預準備語句)並且不包含緩存,所以它不能比直接通過JDBC執行查詢更快。

5

有正在進行的(未發表)的基準檢查在jOOQ瓶頸和一般的性能問題。最近發現的問題的例子可以看這裏:

https://github.com/jOOQ/jOOQ/issues/1625

由於Mikko stated as well,jOOQ不能擊敗直接傳遞給JDBC靜態SQL字符串,因爲你總是會有的開銷:

  1. 構建jOOQ對象
  2. 遍歷jOOQ對象進行渲染SQL
  3. 與SQL創建PreparedStatement
  4. 遍歷jOOQ對象綁定變量,它們結合到PreparedStatement

如果性能是在您的環境至關重要,我建議你不要讓jOOQ執行這些步驟對每個查詢執行。相反,讓jOOQ渲染SQL一次並自己緩存SQL字符串,以及對可重用的PreparedStatement的引用。但是,如果您不使用內存數據庫(如H2),那麼我們在此討論微型優化,如基準所示。我們正在討論每個查詢獲得1ms的時間間隔<。

相關問題