我有一个2008 C#应用程序(后端SQL Server 2008),有时查询会返回大量结果。因此,我研究了一些分页算法,并使用了使用TOP语句的算法。我喜欢的是,如果我有500个总结果,每页只显示20个结果,那么我只需要查询20条记录而不是将所有500条记录存储在内存中。
但我的问题是,在实现分页算法之前,我需要知道此查询中有多少总记录。所以,我所做的就是运行另一个查询,具有相同的参数,只选择ID(而不是整个对象)以尝试使其快速运行。但由于某种原因,我认为运行这两个查询(从而建立2个连接)并不是最佳方法。
因此,我需要所有记录的计数,但只想选择用于TOP的有限数量。这里是否可以使用临时表?我现在有两个不同的存储过程。
感谢任何人可以提供的“最佳实践”建议。
但我的问题是,在实现分页算法之前,我需要知道此查询中有多少总记录。所以,我所做的就是运行另一个查询,具有相同的参数,只选择ID(而不是整个对象)以尝试使其快速运行。但由于某种原因,我认为运行这两个查询(从而建立2个连接)并不是最佳方法。
因此,我需要所有记录的计数,但只想选择用于TOP的有限数量。这里是否可以使用临时表?我现在有两个不同的存储过程。
感谢任何人可以提供的“最佳实践”建议。