spring-boot - PagingAndSortingRepository 第一个页面加载很慢
问题描述
我正在使用PagingAndSortingRepository进行分页。有了一些数据,一切正常。
当我有超过大约 1000 个条目的较大数据集时,我在加载第一页时会遇到性能问题。所有其他页面的加载速度要快得多(请求顺序对性能没有任何影响)。
我的存储库如下所示:
@Repository
@Transactional(readOnly = true)
public interface MyRepository extends PagingAndSortingRepository<MyObject, Integer>, JpaSpecificationExecutor<MyObject> {
}
我这样称呼它:
Specifications<MyObject> filter= getMyFilter();
Pageable pageable = PageRequest.of(page, size, sort);
Page<MyObject> page = this.myRepository.findAll(filter, pageable);
我的第一个假设是,对于第 1 页,会生成一些昂贵的 sql 查询。但是第 1 页和第 2 页的语句之间没有太大区别。而且它们都在进行计数。我首先想到的可能是原因。
我想问题出在存储库中。有人有同样的问题吗?
解决方案
问题是 mssql 数据库中的一些统计信息。在我删除它们后,性能问题得到了解决。
推荐阅读
- windows - Ansible SUBST 驱动机器范围
- java - IllegalArgumentException:无法解析值“${login.endpoint}”中的占位符“login.endpoint”
- angular - ERROR 错误:无法实例化循环依赖!身份验证服务
- cookies - Jmeter 中的 cookie 处理问题
- html - 为什么我的边界溢出到我的另一个 div 中?
- debugging - 什么是“并发分配给非网络”
不允许” Verilog 模拟错误? - c++ - C ++ 17 'new' 运算符仍然可以泄漏内存吗?
- javascript - Web Audio API:使用复杂节点图播放多个音符的最佳实践是什么?
- c++ - (VC 2019) C++ return 语句在发布配置中被忽略,在调试中工作正常
- sql - 比较 2 个文本字段 SQL - 错误 - ORA-22835:缓冲区太小,无法进行 CLOB 到 CHAR 或 BLOB 到 RAW 转换