我正在进行应用程序优化,我已经优化了我的查询,从17秒以上只需5毫秒(总执行时间= ~350毫秒)。但迭代 60k 记录的SQLDataReader记录大约需要 900 ms 。有什么方法可以减少900毫秒的时间吗?
以下是我使用的示例代码......
SqlConnection conn = new SqlConnection("data source=XXX;initial catalog=XXX;integrated security=True");
conn.Open();
SqlCommand cmd = new SqlCommand("uspOptimizedSP", conn);
cmd.CommandType = CommandType.StoredProcedure;
var reader = cmd.ExecuteReader();
int i = 0;
Stopwatch sw = new Stopwatch();
sw.Start();
while (reader.Read())
{
++i;
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds); // This results in ~900 ms
经过的毫秒是 800ms到950ms
其他详情
答案 0 :(得分:1)
Datareader
读取数据就好像它是一个流一样,在执行查询可用时从数据库中检索行。这可能就是为什么你需要时间来复制714 MB的数据。您无法将其与迭代内存集合进行比较。