利用dataset加 dataview加pagedatasource(封装了gridview跟分页相关的属性)
再加aspnetpager分页控件,,再加gridview分页显示数据的时候,要想提高速度,该注意哪些呢?
我现在的做法是(假如需要分页显示一个数据表的数据)
1\利用dataset获得全部数据,
2\通过 dataset获得对应的dataview
3\将dataview绑定到pagedatasource对象
4\设置pagedatasource的页码,
5\绑定到gridview展现数据(对应合适的页码)这个过程,假设数据表有200万条记录,gridview每页显示10万记录,那么这个页面显示将异常缓慢,,
问题1\这中间慢的主要原因来自哪个环节?(不考虑硬件)是dataset获得全部200万记录的过程占用大量时间,还是gridview从dataview读取数据展现到当前页的10万条记录这个过程占大量时间???就是两者所花费时间的比值,哪个占主要?(速度慢的主要原因来自哪里?)问题2\如果每页设置显示10条记录,那么这个时候速度应该会快多少??就是每页从10万记录减少到10条记录,时间能够节省很多吗?问题三\如果dataset仅仅获得当前页所需要的10万记录(而不是所有200万记录),那速度会增加很多吗?问题4\如果每页显示10条记录,并且dataset每次仅仅装载10条记录(这是否是最理想的状态和速度呢?)问题5\这个过程尽可能加快速度还能有其它方法吗???
再加aspnetpager分页控件,,再加gridview分页显示数据的时候,要想提高速度,该注意哪些呢?
我现在的做法是(假如需要分页显示一个数据表的数据)
1\利用dataset获得全部数据,
2\通过 dataset获得对应的dataview
3\将dataview绑定到pagedatasource对象
4\设置pagedatasource的页码,
5\绑定到gridview展现数据(对应合适的页码)这个过程,假设数据表有200万条记录,gridview每页显示10万记录,那么这个页面显示将异常缓慢,,
问题1\这中间慢的主要原因来自哪个环节?(不考虑硬件)是dataset获得全部200万记录的过程占用大量时间,还是gridview从dataview读取数据展现到当前页的10万条记录这个过程占大量时间???就是两者所花费时间的比值,哪个占主要?(速度慢的主要原因来自哪里?)问题2\如果每页设置显示10条记录,那么这个时候速度应该会快多少??就是每页从10万记录减少到10条记录,时间能够节省很多吗?问题三\如果dataset仅仅获得当前页所需要的10万记录(而不是所有200万记录),那速度会增加很多吗?问题4\如果每页显示10条记录,并且dataset每次仅仅装载10条记录(这是否是最理想的状态和速度呢?)问题5\这个过程尽可能加快速度还能有其它方法吗???
解决方案 »
- 请问如何在html 中 用正则表达式 提取需要的内容
- asp.net 打开excel浏览器兼容问题
- Index was out of range. Must be non-negative and less than the size of the colle
- NHibernate ISession save方法问题
- 大家还又什么好的分页方法或者思路,讨教讨教。
- 大家推荐个便宜点的ASP.NET2.0空间 + SqlServer数据库啊 库单独买也行~~偶学生穷啊~~~
- 高手帮我看看 我这样的设计结构好吗?
- 163的邮件系统里那个嵌入的页面是怎么做的?
- 高手指点-验证问题,好像是我Web.config事 没有调对!
- 删除access数据问题。。请看源程序!
- 有关SQL SERVER 2008Express和sqlserver 2000并存的问题
- 问大家一个算法,大侠们进来给点思路,外加小散分。
建立索引
LINQ SKIP Take
{
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter datar = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
datar.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
AspNetPager1.RecordCount = dv.Count;
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.DataSource = dv;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.PageSize = AspNetPager1.PageSize;
GridView1.DataSource = pds;
GridView1.DataBind();
}就是这样的方式
http://blog.csdn.net/heiwer/archive/2010/12/10/6067981.aspx
为什么不是每次只取出10条记录,再显示10条记录呢?
不要用dataview自带的分页方法,效率太低,会害死人的。