在ASP.NET中数据查询需要耗费大量时间,急求高手!!!

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:41:07
我在.NET页面中进行查询操作,有一千多条数据,查询时结果好慢,需要14-20秒的样子,但在存储过程中很快,需要1-2秒,请问哪位大侠有什么高招,提高我的数据速度,在DAL层运用的是RateReader,不知道有什么方法改进。
具体如下:
public System.Collections.Generic.IList<TextBookDeclareMegerModel> GetBookInfoBySchoolYearDataSignDAL(string schoolyearterm, string datasign)
{
TextBookDeclareMegerModel item = null;
System.Collections.Generic.IList<TextBookDeclareMegerModel> items = new System.Collections.Generic.List<TextBookDeclareMegerModel>();
IDbCommand command = CreateStoredProcedureCommand("UTM_TeachBooksSummary_GetStudentBooksInfo");
command.AddInParameter("@SchoolTerm", USCTAMis.Data.Common.DbType.STRING, schoolyearterm);
command.AddInParameter("@DataSign", USCTAMis.Data.Common.DbType.STRING, datasign);
using (System.Data.IDataReader dr = ExecuteReader(command))
{
while (dr.Read())

1.SQL 建索引.
2.主要原因就是你用集合对象items,动态添加, 这个东西占用了绝大多数时间.所以减少字段,不是需要的字段, 就去掉,特别是那些内容很大的字段.
3.使用分页, 你一次查询那么多记录, 用得了吗?再说,即使用得了,一个屏幕能显示那么多吗?事实证明, 第三种方法最有效.

晕,用LIST做查询。。。你的数据库有一千多条数据,那么根据你的代码,就会循环一千多次,你说慢不慢?为什么不用数据集方式DataSet?

要优化的话:
首先代码需要修改优化。
然后一般在页面只显示少许数据,你可以做成分页,每次只取需要的数据,然后再绑定控件就可以了。
最后SQL语句的优化也很重要。

数据适配器查询数据,添加到DataSet里

优化一下SQL语句,例如先查询再连接之类的。