[已解决问题] 用标准的SQL语句实现分页和repeater分页的区别?
提问时间: 2008-01-06 11:11
浏览:753 次
用标准的SQL语句实现查询记录分页和repeater实现分页在性能和效率上有啥子区别?
提问者:杜耀辉 - 菜鸟二级

问题补充:标准SQL语句查询分页
SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id ) >= 10 AND (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id ) < 20
用repeater进行扩展分页的话在查询数据库的时候好像是查询返回所有记录,引用分页的类对返回的数据表格进行数据分页,不知道对repeater进行扩展分页的数据访问形式理解是否正确,
我的意思是对repeater进行扩展分页时的数据访问方式和标准SQL语句查询分页的数据访问方式的性能和效率的分别

再次的补充:
?????????????
repeater本身没有分页的功能,经过扩展自其他控件的分页类来实现的分页,问题就出在扩展上,所以在repeater呈现数据的时候是和datagrid的性质差不多了。

最佳答案
repeater只是个数据显示的控件,不包含分页的任何逻辑.如,你给他10条数据,他就显示10条.
sql分页,指的是通过存储过程或者SQL句子在数据库查询返回必要的数据,然后交给显示控件(如:repeater,datalist)把数据显示出来.这种的性能最好.
我觉得你只所以会有这种想法,可能你是用datagrid来"分过页",datagrid只是把所有数据都读出来,然后自我限制显示的页码和页数就可以实现分页显示了,但这种显示是要把所有符合的数据都读了出来,如果你要显示的数据有100W条,哪么他就会把这100W条读出来,性能可想而知了..
推荐使用SQL分页+repeater显示数据
2008/1/6 14:16:57 回答者:没剑


提问者对于答案的评价:谢谢
其它回答(3)
这个比较不恰当~~Repeater只是一个展示控件并不含有数据访问的逻辑, 所以没有可比性. 所谓的Repeater分页也只是对它作了一些扩展和封装而已,说到底还是得自己访问数据, 都一样.
6个月前   回答者:沙加 - 老鸟四级
repeater结合扩展分页也是用其它的组件或你自己写逻辑来实现的,可以按需要取数据的啊。datagrid分页不太清楚,没用过这个分页。这个控件也没用过
6个月前   回答者:Wilensky - 小虾三级
SQL分页可以把当前数据读出来
repeater都得读出来
6个月前   回答者:mmic.net.cn - 菜鸟二级
评论
6个月前   没剑 :
不管你用什么组件,你要明白你从数据库中获取的数据是多少,这样子决定了你的显示速度!!
按需所取是目前比较现实的解决办法.如select top N... 或者max /not in等的道理都是一样:实现从数据库中取得当前"页"所要显示的数据,而不是全部!
如果你改造repeater自带了分页的话,如果结合按需所取的原则的话性能绝不会比:datalist/datagrid自带的好太多~
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除