如何 debug Spring Data JPA 慢 SQL?

27 天前
 JasonLaw
我有一个 Spring Boot 项目,使用 Spring Data JPA ,使用的数据库是 Oracle 。

其中有一个方法是根据条件批量获取 1000 条数据,使用的是 native query ,其 SQL 是 select * from table where id > :id and exchange in :exchangeCodes and maturity >= :maturity order by id fetch first 1000 rows only 。

但是这个 repository 方法有时候挺快的,大概 2 秒左右,不过大部分时间都是很久,要两分钟左右,甚至更久。但我试过直接用 Oracle SQL Developer 多次执行同样的 SQL ,基本是差不多 2 秒左右,除了有时候的第一次,会到 10 多秒左右。

我怀疑是网络传输的问题,但我根本没有方法知道时间到底花在了哪里,是数据库执行呢,还是数据的传输?有什么工具可以帮助我找到慢的根本原因吗?
450 次点击
所在节点    程序员
1 条回复
bigfei
27 天前
怀疑是 fetch 1000rows 的问题,看看去掉这个有没有解决问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1045965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX