2012-08-08 40 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的时间间隔<。

相关问题