[导入]RowCount 高效分页

     处理分页的sp很多,通常情况下基本上需要四个参数(@pagesize int,@pageindex int,@key  nvarchar(50),@Count bit),通过Count参数布尔值来控制sp 是返回总记录数还是返回指定字段。在处理后者时都是新建一个带自增列的临时表,把查询表的标识插入临时表的其中一列,这样根据pagesize 和pageindex 可以知道要取的记录段了!

    其实这样在处理后面的数据时间是把所有数据都查询了一遍是很低效的,往往在碰到多表大量数据的时候服务器更是不堪重负。如果我们在处理后者的前面加上一句 set RowCount  (@pagesize*(@pageindex-1)+@pagesize), 注意中间没有等于号,这样程序只会处理我们想要的那部分了。下面有个例子,是要列出三个表里所有相关的数据:

     create procedure [EnterUser].[EI_CompanyFile_SearchEnterInfo] 
(@skey NVarChar(100), 
@pagesize int, 
@pageindex int, 
@docount bit,
@SearchType nvarchar(1),
@i int out) 
as

set nocount on 
if(@docount=1) 阅读全文
类别:sql笔记 查看评论
文章来源:http://hi.baidu.com/%B3%C2%C1%A2/blog/item/abbfb15118129a18367abed4.html

posted @ 2006-09-01 16:09  种地的汉子  Views(260)  Comments(0)    收藏  举报