讨论web中大数据浏览的分页策略
我在一套web系统中遇到如下情况,系统要显示不同的数据库中的某些大数据,因此考虑用分页显示,有关分页有很多方案,我采用的是:从数据库中取top n记录,n=页数*每页记录数,然后用DbDataAdapter.Fill(Dataset,RnFrom,Rns,TableName)到一个DataTable中,在用DataGrid.DataBind();这个方案有些缺陷,1在访问后几页时响应太慢,2无法知道记录总数,3对于要合计的字段无能为力。
我不能确定的是:如果用Sql的递增字段先生成temp表,再取出某一页的记录这种方法,到底能比现在快多少(现在2万条40个字段的记录,访问最后一页要40秒,我在sql查询分析器中用select * from tb执行用了38秒),也就是DbDataAdapter.Fill(Dataset,RnFrom,Rns,TableName)的效率如何,这种方法是否.net内部进行了优化,还是很傻地顺序读取,然后fill到table中?
采用目前的方法主要有以下原因:1数据库种类不定,2客户端会自定义排序顺序