在Sql Server 2008中,许多选项可用于通过存储过程进行数据库分页.例如,请看这里和这里.
选项:
已知使用ROW_NUMBER()进行分页会出现性能问题:
请注意,哪种分页方法具有最佳性能(对于带JOIN的大型表)?
如果可能,还请提供相关文章的链接.
谢谢.
您必须回答的一个问题是您是否想向最终用户显示总行数。要计算最后一页的页码,您还需要最后一行的编号。
如果您不需要这些信息,临时表是一个不错的选择。您可以选择主键并使用 LIMIT 来检索直到您感兴趣的键。如果您正确执行此操作,典型的用例将仅检索前几页。
如果需要最后页码,可以使用 ROW_NUMBER()。使用临时表不会快得多,因为您不能使用 LIMIT 子句,使得此策略相当于 ROW_NUMBER() 计算。
| 归档时间: |
|
| 查看次数: |
5205 次 |
| 最近记录: |