【问题标题】:JPQL performance analysisJPQL 性能分析
【发布时间】:2011-06-22 18:22:24
【问题描述】:

我试图通过在我们的 mysql 数据库中进行常见的 EXPLAIN select (...) 来查看我们的数据库性能问题,但是我们的软件(用 JAVA 编写)使用的是 JPQL。我的意思是,所有查询都使用对象,我想完全按照 JPA 生成的查询重现 mysql 查询(可以这样做吗?我的意思是,它必须在某个时候转换为 sql)。

谁能解释我如何将这个 (JPQL) 翻译成 sql 查询?甚至,如果有什么方法可以直接在 JPA 中执行 EXPLAIN,请指出我,这样我就可以为这项任务制作一些 UT。

我知道有一种方法可以在运行 UT 时直接在控制台中显示查询,也许我可以尝试找出如何设置它,但我不确定它是否显示本机查询而不是 JPQL 查询。

只是为了明确我的目标:

  • 使用 EXPLAIN 或类似的东西 指出性能问题或 数据库。
  • 涉及的技术:JPA 和 MySql。

我想到的一些解决方案(如果可行,我希望你们指出):

  • 了解如何将 JPQL 转换为 SQL 并使用旧的 EXPLAIN 方法。
  • 了解如何在 JPA 中直接使用 EXPLAIN
  • 跟踪 MySql 日志或控制台(运行我的 UT 时):(

谢谢, 弗拉维奥。

【问题讨论】:

  • 您使用的是哪种 JPA 实现?

标签: mysql performance jpa


【解决方案1】:

日志没有为 JPA 标准化,因此启用日志取决于您的 JPA 提供者,

对于 EclipseLink,使用 persistence.xml 属性,

看, http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging

【讨论】:

  • 应该这样做,跟踪日志会给我我需要的查询!谢谢@詹姆斯。但我仍然会保持开放状态,看看是否有人对直接在 JPQL 中使用 EXPLAIN 有答案。
猜你喜欢
  • 2013-06-16
  • 1970-01-01
  • 2011-05-31
  • 2016-12-13
  • 2019-08-16
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多