这是一个创建于 160 天前的主题,其中的信息可能已经有所发展或是发生改变。
我有一个 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 多秒左右。
我怀疑是网络传输的问题,但我根本没有方法知道时间到底花在了哪里,是数据库执行呢,还是数据的传输?有什么工具可以帮助我找到慢的根本原因吗?
|
|
1
bigfei 160 天前 via Android
怀疑是 fetch 1000rows 的问题,看看去掉这个有没有解决问题。
|