SQL Server中利用存储过程来高性能地进行分页
来源:百度文库 编辑:神马文学网 时间:2024/04/27 20:24:30
SQL Server中利用存储过程来高性能地进行分页
分页查询的方法已经很多很多,在这里我也加入成为其中一员。
SQL Server中有一个Set Rowcount的的设置,它的意思是使命令的处理在响应指定的行数之后停止处理命令,利用这个特点,我们可以借用它来在一个千万行级数据表中实现高性能分页查询。先来说说实现方式:
1、我们来假定Table中有一个已经建立了索引的主键字段ID(整数型),我们将按照这个字段来取数据进行分页。
2、页的大小我们放在@PageSize中
3、当前页号我们放在@CurrentPage中
4、如何让记录指针快速滚动到我们要取的数据开头的那一行呢,这是关键所在!有了Set RowCount,我们就很容易实现了。
5、如果我们成功地滚动记录指针到我们要取的数据的开头的那一行,然后我们把那一行的记录的ID字段的值记录下来,那么,利用Top和条件,我们就很容易的得到指定页的数据了。当然,有了Set RowCount,我们难道还用Top么?
看看Set Rowcount怎么来帮我们的忙吧:
Declare @ID int
Declare @MoveRecords int
--@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条),看看有多快!
分页查询的方法已经很多很多,在这里我也加入成为其中一员。
SQL Server中有一个Set Rowcount的的设置,它的意思是使命令的处理在响应指定的行数之后停止处理命令,利用这个特点,我们可以借用它来在一个千万行级数据表中实现高性能分页查询。先来说说实现方式:
1、我们来假定Table中有一个已经建立了索引的主键字段ID(整数型),我们将按照这个字段来取数据进行分页。
2、页的大小我们放在@PageSize中
3、当前页号我们放在@CurrentPage中
4、如何让记录指针快速滚动到我们要取的数据开头的那一行呢,这是关键所在!有了Set RowCount,我们就很容易实现了。
5、如果我们成功地滚动记录指针到我们要取的数据的开头的那一行,然后我们把那一行的记录的ID字段的值记录下来,那么,利用Top和条件,我们就很容易的得到指定页的数据了。当然,有了Set RowCount,我们难道还用Top么?
看看Set Rowcount怎么来帮我们的忙吧:
Declare @ID int
Declare @MoveRecords int
--@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条),看看有多快!
SQL Server中利用存储过程来高性能地进行分页
SQL Server中未公布的访问注册表的扩展存储过程
SQL Server中未公布的访问注册表的扩展存储过程
SQL Server的存储过程调用Com组件
VB实现SQL Server 2000存储过程调用
如何从 ASP 调用 SQL Server 存储过程
SQL Server扩展存储过程实现远程备份与恢复
关于SQL Server中几个未公布的访问注册表的扩展存储过程--注入类文章
【原创:数据库】SQL SERVER数据库开发之存储过程应用 - 原创文章 & 讨论汇总版...
SQL SERVER数据库中实现快速的数据提取和数据分页
SQL SERVER数据库中实现快速的数据提取和数据分页
[百万级]通用存储过程.分页存储过程.
[百万级]通用存储过程.分页存储过程. - wellknow
ASP.NET中利用存储过程实现模糊查询
ASP.NET中利用存储过程实现模糊查询
关于SQL Server SQL语句查询分页数据的解决方案
利用您的 Microsoft SQL Server 2000 技能来学习 DB2 UDB ...
SQL SERVER海量数据库的查询优化及分页算法
SQL存储过程学习-华军资讯
SQL存储过程学习2-华军资讯
SQL存储过程入门级教程2
SQL存储过程入门级教程6
★★★[翻译]在Visual Studio 2005中调试SQL Server 2005的存储过...★★★
实现千万级数据分页的存储过程!《