这很奇怪。一段简单的代码
using(SqlConnection
{//open connection
using(SqlCommand
{//Specified parameters and SP name
using(SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
// Parse it and return an object.
return new MyObject
{
prop1 = (int)reader["column1"]
...
propN=reader["columnn"].ToString()
}
执行最多可能需要 3 分钟,而从 Management Studio 执行相同的 SP 运行时间不到一秒!
此代码在另一台服务器上运行。我还发现,如果从代码中执行,Sql Profiler 会报告数百万次读取,而在 Studio 中执行时读取次数少于 5000。
我不知道为什么会这样。任何帮助表示赞赏。PS 执行计划不是绑定到 SP 的,这意味着使用什么客户端运行它没有区别吗?