【发布时间】:2014-04-17 03:25:10
【问题描述】:
我在 foreach 循环中执行一个带有一个参数的存储过程。我得到结果并在那之后做一些额外的处理。代码如下:
foreach(var id in GetIds())
{
var result = ExecuteStoreProcedureForResult(id);
//do extra processing with the result
}
当我第一次直接从查询分析器执行 sp 时,需要 4-5 秒。之后每次查询都会以毫秒为单位返回,即使使用不同的 ID 参数——也比第一次快得多。
我的问题是,如果我从代码中执行这个 sp,查询计划是否会被缓存并在第一次执行后更快地返回结果。和查询分析器一样吗?
我打开连接一次,对每个参数执行sp,最后关闭连接。这会有所作为吗?
感谢所有建议。
【问题讨论】:
-
查询分析器指示不再支持的 Sql Server 2000。仍然使用那个版本的Sql Server是不负责任的。在更高版本中,您可以使用 Sql Server Management Studio 进行连接。
标签: sql-server ado.net