分页时的计数策略

时间:2015-09-22 16:34:46

标签: java sql jpa pagination jmesa

我有一张表可容纳大约4千万条记录。 我正在对该表进行分页,每页偏移量为10条记录。 问题是我必须显示记录总数和页数(给定某些标准)。 SELECT COUNT处理时间太长,大约20秒。 我有一个超时提示,但他没有解决问题,数据库(表)正在增长......

有人遇到过这个问题吗?您实施的解决方案是什么?

我有索引并且查询被调整,问题是记录数量......

我正在使用hibernate JPA,JAVA和jMesa来显示分页页面。

干杯,

1 个答案:

答案 0 :(得分:0)

如果您使用的是Oracle数据库,并且如果表格中行数的近似值足够,请尝试:

SELECT NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME = 'YOUR_TABLE';

另一种选择是:

SELECT COUNT(*) * 100 FROM YOUR_TABLE SAMPLE BLOCK (1);

附录:

第一个查询的SQLServer等效项:

SELECT rows FROM sys.sysindexes WHERE id = OBJECT_ID('YOUR_TABLE') AND indid < 2