asp.net查询数据库大数据卡的要死有什么方法决解

实训在做,系统 里面数据好几万条。在gridview显示的时候 卡炸了。
网上说用ajax。也有说别的(一页只加载一部分数据 等等),请问 各位在实际开发是怎么做的,有代码可以商量加分(不卡,尽可能的快, 尽可能的降低服务器的负担)

好几万数据不算多,几千万条数据也没有像你说的那么卡,你得分析下以下几方面原因:
1、将你查询的SQL放到数据库中执行看需要用多少时间,如果时间比较长的话,首先要从你的查询进行优化,比如说像楼上说的是不是查询了太多不需要的数据,有没有分页,还有就是查询条件的问题,是不是用了太多嵌套查询,是不是应该给查询频繁的字段加索引,是不是考虑用存储过程替代SQL语句
2、检查不绑定GridView之前页面的加载速度,如果不绑定就比较慢的话,你得看程序是不是哪里有问题,是不是套用了太多的iframe,是不是绑定了过多的数据源控件,是不是初始化的js报错

其实最好的办法是你把你的代码贴出来给大家看看,分析分析,更有针对性
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-20
根据你是初学者,我给出两个方案,
1、进行sql 优化, 查询的时候,Select不要用 * ,用到的字段才Select.
2、用存储过程分页,只取出当前页的数据 这个给出参考例子: http://www.cnblogs.com/fishtreeyu/archive/2011/01/01/1923808.html

其它加快速度的方法还有: 加索引,数据分区等。本回答被提问者采纳
第2个回答  2013-12-20
  可以用SQL语句分页。
  /// <summary> /// 分页获取数据列表 /// </summary> public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex) { StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT * FROM ( "); strSql.Append(" SELECT ROW_NUMBER() OVER ("); if (!string.IsNullOrEmpty(orderby.Trim())) { strSql.Append("order by T." + orderby); } else { strSql.Append("order by T.CIID desc"); } strSql.Append(")AS Row, T.* from CashInfo T "); if (!string.IsNullOrEmpty(strWhere.Trim())) { strSql.Append(" WHERE " + strWhere); } strSql.Append(" ) TT"); strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex); return SQLHelper.ExecuteDataset(CommandType.Text, strSql.ToString()); }

这个方法你改写一下就可以用的。
第3个回答  2013-12-20
用一个好的分页么
相似回答