【问题标题】:SQL Server 2005 ,Pagin Query get all result countSQL Server 2005,分页查询获取所有结果计数
【发布时间】:2009-06-05 11:36:23
【问题描述】:

嗨,

我有一些包含很多记录的表格,对于报告,我必须加入这些表格。

如果我想获取所有行,我会遇到超时错误,我在 SQL Server 2005 中使用了分页查询,并且可以逐页获取结果。

但我需要知道结果数或查询的页数。 在分页查询中,如果我使用 count(),我得到的是页面大小,而不是所有结果计数,如果我尝试在所有记录上获取 count(),我也会收到超时错误消息。

有什么方法可以帮助查找查询的页数吗?

谢谢

【问题讨论】:

    标签: sql-server-2005 paging


    【解决方案1】:

    通常页面感知选择存储过程(由例如 .netTiers CodeSmith 模板创建)返回多个结果。第一个结果集是一页数据,第二个结果集是记录数。

    这意味着您的 SP 中必须有两个 SELECT 语句,它们都具有相同的 WHERE 子句,对查询的行应用相同的过滤器。

    【讨论】:

    • 我不使用 Code Smith ,如果我使用另一个使用相同过滤器的选择(没有分页并且只使用 count(*) ,这个会抛出 Time out
    • 我知道你没有使用 CodeSmith。否则你一开始就不会有这个问题。大概的结果集大小是多少(非分页)?
    • 检查它在 .netTiers 中是如何完成的:blog.benpowell.co.uk/2009/02/…
    • 所有行大约 450000 ,也许对于这个查询它返回大约 50000 或更多
    • 您是否使用 Profiler 检查您的 SQL 调用?
    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2015-10-23
    • 1970-01-01
    相关资源
    最近更新 更多