[数据库] 通用分页存储过程第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万条记录的临时表。考虑到这样的情况,再看看上面文章的结果,我决定在我的测试中放弃该方法
相关文章
如何解决VisualSVN Server 安装提示错误 Repositories is not a valid shor
最近在程序中安装VisualSVN Server时,总是提示“'Repositories' is not a valid short file name”这个问题,难为了好长时间,最终解决,下面小编把我的解决办法分享给大家,供大家参考2015-09-09
Sql Server 和 Access 操作数据库结构Sql语句小结
Sql Server 和 Access 操作数据库结构Sql语句小结...2007-06-06


最新评论