2007-07-18

SQL Server数据库三种分页方案详尽分析

来源: 本站收集整理 作者:佚名 评论 0 条
 

分页方案三:

(利用SQL的游标存储过程分页)

create  procedure XiaoZhengGe

@sqlstr nvarchar(4000), --查询字符串

@currentpage int, --第N页

@pagesize int --每页行数

as

set nocount on

declare @P1 int, --P1是游标的id

 @rowcount int

exec sp_cursoropen @P1 output,@sqlstr,

@scrollopt=1,@ccopt=1,@rowcount=@rowcount output

select ceiling(1.0*@rowcount/@pagesize) 

as 总页数--,@rowcount as 总行数,@currentpage as 当前页 

set @currentpage=(@currentpage-1)*@pagesize 1

exec sp_cursorfetch @P1,16,@currentpage,@pagesize 

exec sp_cursorclose @P1

set nocount off

其它的方案:假如没有主键,可以用临时表,也可以用方案三做,但是效率会低。

建议优化的时候,加上主键和索引,内容来自中国站长资讯网(www.chinahtml.com)查询效率会提高。

通过SQL 查询分析器,显示比较:我的结论是:

分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句。

分页方案一:(利用Not In和SELECT TOP分页)效率次之,需要拼接SQL语句。

分页方案三:(利用SQL的游标存储过程分页)效率最差,但是最为通用。

(负责编辑:blank )

֐??׊Ѷ͸
共2页: 上一页 [1] 2 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:如何在SQL Server中使用CLR调用.NET方法  
下一篇:解决SQL Server虚拟内存不足情况
    评论加载中…
 热门排行
 推荐文章
     

 相关文章
网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号