专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » sqlserver分页:SQL Server中利用存储过程来高性能地进行分页 »正文

sqlserver分页:SQL Server中利用存储过程来高性能地进行分页

来源: 发布时间:星期六, 2008年12月20日 浏览:2次 评论:0
="t18"> 分页查询思路方法已经很多很多在这里我也加入成为其中
SQL Server中有个Set Rowcount设置意思是使命令处理在响应指定行数的后停止处理命令利用这个特点我们可以借用它来在个千万行级数据表中实现高性能分页查询先来说说实现方式:
1、我们来假定Table中有个已经建立了索引主键字段ID(整数型)我们将按照这个字段来取数据进行分页
2、页大小我们放在@PageSize中
3、当前页号我们放在@CurrentPage中
4、如何让记录指针快速滚动到我们要取数据开头行呢这是关键所在!有了Set RowCount我们就很容易实现了
5、如果我们成功地滚动记录指针到我们要取数据开头然后我们把那记录ID字段值记录下来那么利用Top和条件我们就很容易得到指定页数据了当然有了Set RowCount我们难道还用Top么?
看看Set Rowcount如何来帮我们忙吧:

Declare @ID
Declare @MoveRecords

--@CurrentPage和@PageSize是传入参数
Set @MoveRecords=@CurrentPage * @PageSize+1

--下面两行实现快速滚动到我们要取数据并把ID记录下来
Set Rowcount @MoveRecords
Select @ID=ID from Table1 Order by ID

Set Rowcount @PageSize
--最恨为了减少麻烦使用*了但是在这里为了介绍说明方便暂时用
Select * From Table1 Where ID>=@ID Order By ID
Set Rowcount 0
大家可以试试看个1千W记录表里面下子方翻页到第100页(每页100条)看看有多快!


出处:南疯 BLOG
http://name-lh.cnblogs.com/archive/2006/03/08/346059.html


相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: