如何增加数据检索?

时间:2015-09-21 21:40:29

标签: c# .net parallel-processing query-performance

我有一个需要很长时间才能执行并最终超时的查询。

我的任务是从表中获取特定日期的所有数据。

但是,数据库表在日期列上没有索引,查询需要很长时间才能执行和超时。

这是我的一段代码:

DateTime dateTo = Convert.ToDateTime(data.DateTo);
DateTime dateFrom = Convert.ToDateTime(data.DateFrom);
command.CommandText = "select * from errorlog where errortime between @dateFrom and @dateTo";
command.Parameters.AddWithValue("@dateTo", dateTo);
command.Parameters.AddWithValue("@dateFrom", dateFrom);
da.SelectCommand = command;
da.Fill(ds);  

有没有办法重写逻辑来提高性能?

2 个答案:

答案 0 :(得分:3)

与您的DBA交谈。让他创建索引。所有其他你要“修复”的东西都只是浪费你的时间和用户的时间。

答案 1 :(得分:0)

由于数据库速度慢导致查询超时,因此很少有解决方案:

  1. 增加超时值;
  2. 首先在数据库中执行查询,因为它们通常会缓存结果。这将为您热身数据,但是,我完全理解,它可能并不总是可能;
  3. 以循环方式运行查询循环遍历整个日期范围,然后在应用程序结束时合并结果;
  4. 只获取所需的列而不是所有内容。