[数据库] 通用分页存储过程第2/5页
更新时间:2007年02月09日 00:00:00 作者:
临时表
首先,我准备先来说一下临时表方法,这是一个广泛被建议使用的解决方案,我在项目中遇到过好几次了,这里有另一篇解释它如何工作的文章,还有一个如何在DataGrid中是用定制化分页(Custom Paging)的例子:
ASP.NET DataGrid分页 第二部分 – 定制化分页
这两篇文章中的方法都是通过把主键数据拷贝到临时表中,然后对主查询做join实现查询优化。下面让我们来看看这个方法的实质:
复制代码 代码如下:
CREATE TABLE #Temp (
ID int IDENTITY PRIMARY KEY,
PK /* here goes PK type */
)
INSERT INTO #Temp SELECT PK FROM Table ORDER BY SortColumn
SELECT FROM Table JOIN #Temp temp ON Table.PK = temp.PK ORDER BY temp.ID
WHERE ID > @StartRow AND ID < @EndRow
通过把所有的行拷贝到临时表中,我们可以对查询进一步的优化(SELECT TOP EndRow …),但是关键在于最坏情况——一个包含100万记录的表就会产生一个100万条记录的临时表。考虑到这样的情况,再看看上面文章的结果,我决定在我的测试中放弃该方法
相关文章
Sql Server、Access数据排名的实现方法(例如:成绩排名)
在很多时候,我们需要统计数据的排名情况,最常见的是成绩、投票数等等的。2009-06-06Maven nexus 安装nexus私服出现的问题和解决办法
本文主要介绍安装nexus私服的时候出现问题的解决办法,这里整理了两种问题并详细说明了解决办法,有需要的朋友可以参考下2016-08-08
最新评论