これは非常に奇妙です。単純なコードの一部
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 を実行すると 1 秒未満で実行されます!
このコードは別のサーバーで実行されます。また、Sql Profiler は、コードから実行した場合は数百万回の読み取りを報告しますが、Studio で実行した場合は 5000 回未満の読み取りを報告することもわかりました。
それがなぜなのか、私にはわかりません。どんな助けでも大歓迎です。PS実行計画はSPにバインドされていませんか?それを実行するために使用されたクライアントに違いはありませんか?