首页 > 解决方案 > 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 页的语句之间没有太大区别。而且它们都在进行计数。我首先想到的可能是原因。

我想问题出在存储库中。有人有同样的问题吗?

标签: spring-bootspring-data-jpa

解决方案


问题是 mssql 数据库中的一些统计信息。在我删除它们后,性能问题得到了解决。


推荐阅读