我在一次面试中被问到了这个问题。假设您已经编写了一个hibernate查询(原生或HQL),并且此查询包含3-4个Join。现在查询运行速度很慢。那么,如果我进行调试,我如何找出哪个连接占用的时间最多呢?
我已经和我的同事,我的teamMates谈过了,询问了许多高级开发人员,也在互联网上搜索过,但没有得到任何满意的答案。
我想出了这两种方法:
1:在查询开始和结束时使用当前时间戳编写日志记录信息,以便可以在日志中检查查询所用的时间。
2:或者您可以将log4j logger与hibernate集成,以便hibernate以详细的格式打印日志。
这能解决这个问题吗?毫无线索。请协助
发布于 2020-04-04 22:39:33
都不是。您必须登录查询的详细信息,然后将查询传递给DB执行分析器。看一看查询计划就会给出一个提示。
https://stackoverflow.com/questions/61029703
复制相似问题