我们在这里使用以下分页技术:
count(*)
- >在页面上呈现一些分页链接
只要count(*)
合理快速,这种方法就能很好地运作。在我们的例子中,数据大小已经增长到非索引查询(尽管大多数东西被索引覆盖)的时间超过一分钟。因此,此时用户等待一个大多数不重要的数字(总记录匹配过滤器,页数)。前N个记录通常很快就准备好了。
因此我有两个问题:
count(*)
限制为某个数字count()
)或者只是一般情况:是否有一些简单的方法来避免这个问题?我们希望保持系统尽可能不受影响。
数据库:Oracle 10g
更新
有几种情况
count(*)
和实际选择都不应该成为问题count(*)
是巨大的,确定它需要很长时间 - > rownum会帮助count(*)
为零或非常低,这里的时间限制会有所帮助。或者,如果结果集已低于页面限制,我可能不会执行count(*)
。答案 0 :(得分:3)
你可以使用'where rownum< x'限制要计数的行数。如果你需要向你的用户显示你有更多的寄存器,你可以使用x + 1来计算是否有超过x个寄存器。