使用带有ExecuteReader()的语句似乎会导致性能下降

why*_*heq -2 c# sql-server performance

在我的代码中,它将数据从SQL Server中的存储过程流式传输到.csv文件中,我有这样的:

...
using(SqlDataReader reader = cmd.ExecuteReader())
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

代码运行得非常慢.

我摆脱了以下的using指令:

...
SqlDataReader reader = cmd.ExecuteReader()
...
Run Code Online (Sandbox Code Playgroud)

现在它运行得更快.这种性能差异的原因是什么?

该代码在存储过程中触发一个相对简单的SQL脚本,该脚本返回2百万行数据,这些数据是3列宽.

小智 7

可能是第二次运行它时,数据库已经将数据缓存在内存中.