微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有顶行过滤器后如何从rowcount获取表的所有行数

如何解决具有顶行过滤器后如何从rowcount获取表的所有行数

我的数据库中有一个巨大的表和一个访问它的存储过程,它需要分页

为了实现这一点,我想要表的总记录,为此,我面临性能问题,因为为此我需要运行此查询两次:

  • 第一次计算所有记录的数量
  • 其次,当我需要选择该页面范围内的记录时

有什么办法可以避免第一个查询获取总计数,而不是使用行计数或其他方法

解决方法

一种方法是这样的:

SELECT 
    (your list of columns),COUNT(*) OVER ()       
FROM 
    dbo.YourTable
ORDER BY
    (whatever column you want to order by)
    OFFSET x ROWS FETCH NEXT y ROWS ONLY;

使用 OFFSET / FETCH,您只检索一页数据 - 而 COUNT(*) OVER() 将为您提供表中的总行数 - 所有在单个查询中

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。