项目是b/s架构 gridview不分页全部显示,性能如何调教到最好,困惑了好久 望高手进来解决疑惑

问题描述

正在做个项目BS架构,有很多页面通过gridview分页显示数据,然后页面上加了个input和提交按钮提供搜索现在我为了用户更好的体液,将提交按钮删除,通过input输入实时筛选数据。因为采用了分页,所以用jquery筛选无法实现如果不分页,太多数据,IE估计要奔溃方案1:用ajax实现,但是每次输入一个字符都要跟服务器打交道性能不怎么好方案2页面数据以dataset存储,然后采取gridview自带的控件分页,(存储过程分页dataset数保存的据都是一页一页,不是所有的数据,无法做筛选)在input上输入一个字符,就启动一个服务器事件,这个事件就是ds.tables[0].Selectt("条件"),,筛选所需要的数据,从而重新绑定因为dataset是保存在内存里,所以筛选的时候直接在内存读取我想性能应该还可以大家觉得方案2怎么样或有什么更好的方法

解决方案

解决方案二:
"跟服务器打交道"慢在你查询出太多数据时数据库系统要序列化为查询结果数据上,而数据库本身的查询并不慢(SQLServer甚至会自动使用上G内存的自动缓存)。另外一个“慢”的原因是你的查询语句根本就是用不上索引。所以如果你一次只是查询几十条数据,那么就直接跟服务器打交道就好了。以后可以考虑将SQL查询语句作为key,使用.net的Cache类创建缓存单元。但那是后话,它是基于你的查询数据库的SQLHelper上做的优化。
解决方案三:
引用1楼sp1234的回复:

"跟服务器打交道"慢在你查询出太多数据时数据库系统要序列化为查询结果数据上,而数据库本身的查询并不慢(SQLServer甚至会自动使用上G内存的自动缓存)。另外一个“慢”的原因是你的查询语句根本就是用不上索引。所以如果你一次只是查询几十条数据,那么就直接跟服务器打交道就好了。以后可以考虑将SQL查询语句作为key,使用.net的Cache类创建缓存单元。但那是后话,它是基于你的查询数据库的SQLHelper上做的优化。

是这样的,比如有一个物料表,打开页面一共有5千条记录上面有个textbox按钮做筛选比如我输入1时,就晒选物料号包含有1的字段全部显示出来,再打个2时,就晒选物料号包含有12的字段全部显示出来,依次类推。。。。所以我想页面初次加载的时候数据都保存在dataset里,然后筛选就直接在dataset中筛选,这样比每次跟数据库表打交道要快吧
解决方案四:
"我想页面初次加载的时候数据都保存在dataset里,然后筛选就直接在dataset中筛选",也就是说除了第一次数据读入dataset外,之后dataset里的数据是不更新的,那如果数据读入dataset之后又录入了新数据,那结果嘛,你懂的
解决方案五:
多数都会采用方案1,方案2一下加载太多数据到页面,对用户的体验影响非常大。
解决方案六:
你既然想实时的取结果,那就要去sql里面查了。否则你缓存的数据可能是旧的了。一下几点不妨考虑一下:1.这个增强的用户体验是否必要?使用上真的会给用户带来很大方便吗。如果用户就想查询1234号的物料,那么你在1的时候查一次,2的时候查一次,3的时候查一次。然而这三次显示的结果对用户来讲,是没有意义的--他不需要。如果是这样的话,你这个用户体验的优化除了增加成本,没有带来实际的好处。2.如果真的想按照你的想法改进,考虑一下并发数有多少?如果同时使用这个页面的人很少,那你多查几次也无妨。如果有大量的user同时使用这个页面,那么还是尽量减少查询次数。
解决方案七:
1、数据库设计合理。建立需要的字段索引可加快查询速度。2、数据库访问多用存储过程实现,要比直接写sql语句效率高一些。3、采用jquery实现异步加载数据,访问效率要高出普通页面一些。

时间: 2025-01-21 20:11:17

项目是b/s架构 gridview不分页全部显示,性能如何调教到最好,困惑了好久 望高手进来解决疑惑的相关文章

图片-为什么ASP.NET中GridView的分页设置显示不对

问题描述 为什么ASP.NET中GridView的分页设置显示不对 为什么ASP.NET中用GridView的PagerSettings设置分页功能时会显示同是"上一页"或同是"下一页"呢? 解决方案 ASP.NET中GridView分页gridView (分页)(asp.net)asp.net 中的gridview 之gridview 分页 解决方案二: 这个在GridView中的Position属性中设置,TopAndBottom表示在上面和下面都显示,Top表

GridView高效分页和搜索功能的实现代码_实用技巧

前言:         公司项目开发,上周的任务是做基础数据的管理.在Sharepoint2010里边内嵌asp.net的aspx页,遇到了各种各样奇葩的问题,因为之前对sharepoint只是有一些了解,但是没有设计到具体的编程工作,这一次算是初次接触吧.其中有一部分基础数据数据量很大,大致有十多万,因为是对基础数据的维护,所以还需要对数据进行列表展示,增删改查什么的,大家都知道Asp.net里边的GridView有自带的分页,但是,那个分页对于少量的数据还好,对于这种数十万的数据量而言,这种

求一个ssh项目中的display:table标签实现分页的完整代码

问题描述 求一个ssh项目中的display:table标签实现分页的完整代码 /display:column/display:column/display:column/display:column /display:column /display:column/display:setProperty/display:table

使用AspNetPager与GridView完成分页

由于GridView的分页功能实在是太弱了,所以需要使用强大的AspNetPager来作为分页控件.最简单的办法就是GridView控件下面接着放一个AspNetPager控件,但是这样好像就不能用GridView的分页功能了.在数据量不大的情况下,使用GridView的分页是十分方便有效的.另外还有一个问题就是分页控件在GridView生成的表格的下面,而没有像GridView自带分页那样包含到表格内部,这点也不是很爽. 要解决以上的问题,可以将AspNetPager放入GridView的分页

后台绑定数据的gridview的分页问题

问题描述 后台绑定数据的gridview的分页问题 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)//查看详细名单 { int p_index = e.NewEditIndex; string listid = GridView1.DataKeys[p_index].Value.ToString(); string qstr = "select * from t_basedata where

实例:asp.net中GridView实现分页功能

要实现GrdView分页的功能 操作如下: 1.更改GrdView控件的AllowPaging属性为true. 2.更改GrdView控件的PageSize属性为 任意数值(默认为10) 3.更改GrdView控件的PageSetting->Mode为Numeric等(默认为Numeric)该属性为分页样式. GridView属性设置好了,从页面上也能看到分页样式. 现在开始实现分页的功能: 1.在<<asp:GridView ID=......>后添加,OnPageIndexCh

GridView自定义分页的四种存储过程_MsSql

1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何获得一个新页面,它只是请求绑定的数据源控件返回适合规定页面的行,分页最终是由数据源控件完成.当我们使用SqlDataSource或使用以上的代码处理分页时.每次这个页面被请求或者回发时,所有和这个SELECT语句匹配的记录都被读取并存储到一个内部的DataSet中,但只显示适合当前页面大小的记录数.也就是说有可能使用Select语句返回1000000条记录,

GridView自定义分页的四种存储过程

1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何获得一个新页面,它只是请求绑定的数据源控件返回适合规定页面的行,分页最终是由数据源控件完成.当我们使用SqlDataSource或使用以上的代码处理分页时.每次这个页面被请求或者回发时,所有和这个SELECT语句匹配的记录都被读取并存储到一个内部的DataSet中,但只显示适合当前页面大小的记录数.也就是说有可能使用Select语句返回1000000条记录,

关于分页查询和性能问题

分页查询是经常能够遇到的问题,我们首先看看分页查询存在的理由: 方便用户:用户不可能一次察看所有数据,所以一页一页的翻看比较好. 提高性能:一次从数据库中提取所有数据会比较慢. 那么现在我来尝试反驳上述理由: 真的方便吗?我们考虑下面的情况 如果数据只有20条. 如果数据超过1000条. 第一种显然不必分页查询.奇怪的是第二种也不必,因为没有哪个用户愿意一页一页的翻到最后,如果用户查询到的数据超过了他所关心的数据范围,我认为应该让他重新输入查询条件,就像我们使用google一样. 但是作为一个友