我有一个场景,我得到一个计数,然后将计数作为变量传递给类似的查询以获取分页记录。所以基本上我正在做一个完整的查询,通过内部创建完整的表来获取所有计数,然后使用该计数显示每页10个相同的表。我有什么解决方案来避免这种多重查询?
这样的东西是伪语言。
select count {big table}
select big table where records are between count and count+10
是否有一种合理的方法可以在同一个查询中获取COUNT变量?
我想知道谷歌将如何处理搜索,是首先找到所有记录还是只是在不跟踪no:of pages的情况下获取记录?页码不能先计算,因为它取决于用户发送的变量。
编辑:我在这里有一个类似的问题https://dba.stackexchange.com/questions/161586/including-count-of-a-result-in-the-main-query
答案 0 :(得分:3)
对于Google,他们可能只生成请求的结果数量(如10)并估算计数。估计的数量非常不精确。
您无法让SQL Server统计所有结果并只获取其中的一部分。有3种策略可以解决这个问题:
计算数据可能会大大降低,因为SQL Server可以使用不同的索引或丢弃连接。