【问题标题】:How do i find which Join is taking most of the time while executing a Hibernate query?在执行 Hibernate 查询时,如何找到哪个 Join 占用了大部分时间?
【发布时间】:2020-07-16 16:11:33
【问题描述】:

我在一次采访中被问到这个问题。假设您编写了一个休眠查询(本机或 HQL),并且该查询包含 3-4 个联接。现在查询运行缓慢。那么如果我调试我如何找出哪个连接花费的时间最多?

我和我的同事、我的队友聊过,问过很多资深开发者,也上网搜索过,都没有得到满意的答案。

我想出了这两种方法:

1:您在查询的开始和结束时写入带有当前时间戳的日志信息,以便您可以在日志中查看查询所用的时间。

2:或者您可以将 log4j 记录器与 hibernate 集成,以便 hibernate 以详细格式打印日志。

这甚至可以解决这个问题吗?我没有任何线索。 请帮忙

【问题讨论】:

    标签: java sql hibernate join


    【解决方案1】:

    两者都没有。您必须登录查询的详细信息,然后将查询传递给您的数据库执行分析器。查看查询计划将给出提示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 2021-10-30
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多