A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2013-3-26 22:34  /  1937 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个问题咋回答你呢? 你所只的高效是需要处理多少数据以上才能称为高效?那我就在这里做个比较吧:
当你使用服务器端控件进行分页时,他是很方便但是在处理较多数据时就变得非常慢了,原因是每次进行页面跳转其实他是查询了表中所有数据,导致执行效率低。
我平时处理分页的方法是通过数据库写存储过程来实现,这样的好处是空间和数据库服务器都能合理进行数据处理就不会导致某一台服务器cpu上彪,另一台基本啥都不做合理分配资源,虽谈不上什么高效,但相对GridView这些控件的自带分页要快些了。

alter PROCEDURE GetPageDataOutRowPageCount
(
@PageIndex int = 1,--当前页数
@PageSize  int = 4,--每页大小
@NowPage   int = 1,--根据传入栏目id要加载当前页的数据
@RowCount int output,--总行数(传出参数)
@PageCount int output--总页数(传出参数)
)
AS
begin
        DECLARE @sql NVARCHAR(225)
        select @RowCount =COUNT(FCaseChildId),@PageCount=CEILING((COUNT(FCaseChildId)+0.0)/@PageSize) FROM TCaseContent where FParentsId=@NowPage
        SET @sql='SELECT TOP '+str(@PageSize) +' * FROM TCaseContent  where FParentsId='+str(@NowPage)+' and FCaseChildId not in(select top '+str((@PageIndex-1)*@PageSize) +' FCaseChildId from TCaseContent where FParentsId='+str(@NowPage)+')'
        EXEC(@sql)
end

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
石国庆 发表于 2013-3-27 20:36
我还是个菜鸟,暂时还看不懂你这个,先留着,谢了

客气了,我们来到黑马都是同一目标。。。大家都是战友相互扶持是应该的。。。。加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马