asp.net查询数据库大数据卡的要死有什么方法决解
发布网友
发布时间:2022-04-13 14:06
我来回答
共4个回答
热心网友
时间:2022-04-13 15:36
好几万数据不算多,几千万条数据也没有像你说的那么卡,你得分析下以下几方面原因:
1、将你查询的SQL放到数据库中执行看需要用多少时间,如果时间比较长的话,首先要从你的查询进行优化,比如说像楼上说的是不是查询了太多不需要的数据,有没有分页,还有就是查询条件的问题,是不是用了太多嵌套查询,是不是应该给查询频繁的字段加索引,是不是考虑用存储过程替代SQL语句
2、检查不绑定GridView之前页面的加载速度,如果不绑定就比较慢的话,你得看程序是不是哪里有问题,是不是套用了太多的iframe,是不是绑定了过多的数据源控件,是不是初始化的js报错
其实最好的办法是你把你的代码贴出来给大家看看,分析分析,更有针对性
热心网友
时间:2022-04-13 16:54
根据你是初学者,我给出两个方案,
1、进行sql 优化, 查询的时候,Select不要用 * ,用到的字段才Select.
2、用存储过程分页,只取出当前页的数据 这个给出参考例子: http://www.cnblogs.com/fishtreeyu/archive/2011/01/01/1923808.html
其它加快速度的方法还有: 加索引,数据分区等。
热心网友
时间:2022-04-13 18:28
可以用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()); }
这个方法你改写一下就可以用的。
热心网友
时间:2022-04-13 20:20
用一个好的分页么