Data Access Application ブロックを呼び出すときの非常に奇妙な速度低下。
呼び出している SP ("QuestionsToBeAnswered") は、3 つの列 (2 つの GUID と整数: 21AF77DA-2E76-47DB-AB54-0E5C85CD9AD8、21AF77DA-2E76-47DB-AB54-0E5C85CD9AF0、2) を含む 58 行を 1 秒未満で返します。サーバー上で直接実行されます。私の SQL の経験はかなり良好で、SQL サーバーには問題が存在しないと確信しています。
ただし、DAAB を介して呼び出されると、オブジェクトのコレクションを返すのに非常に長い時間がかかります。ExecuteSprocAccessor(...) は通常 IEnumerable を返し、SP はコレクションが列挙されるか消費されるまで実行されないため、この問題は消費が発生するまで現れません。
DatabaseInstance.ExecuteSprocAccessor<T>(storedProcedure, rowMapper, args);
同じコードが 200 行を超えるかなり複雑な情報を問題なく返すことを考えると、なぜこのコードの実行にこれほど長い時間 (55 秒!) かかるのか、私は困惑しています。
どんなアイデアでも大歓迎です...