如何在具有顶行过滤器后从 rowcount 获取 table 的所有行数
how to get all row count of a table from rowcount after having top row filter
我的数据库中有一个巨大的 table 和一个访问它的存储过程,这需要分页。
为此,我需要 table 的总记录,为此,我面临性能问题,因为为此我需要 运行 此查询两次:
- 第一次获取所有记录的计数
- 其次,当我需要 select 那个页面范围内的记录时
有什么方法可以避免第一次查询获取总计数而不是使用行计数或其他方法吗?
一种方法是这样的:
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()
将为您提供 table 中的总行数 - 所有这些都在一个查询中完成
我的数据库中有一个巨大的 table 和一个访问它的存储过程,这需要分页。
为此,我需要 table 的总记录,为此,我面临性能问题,因为为此我需要 运行 此查询两次:
- 第一次获取所有记录的计数
- 其次,当我需要 select 那个页面范围内的记录时
有什么方法可以避免第一次查询获取总计数而不是使用行计数或其他方法吗?
一种方法是这样的:
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()
将为您提供 table 中的总行数 - 所有这些都在一个查询中完成