调用数据访问应用程序块时非常奇怪的减速。
它调用的 SP(“QuestionsToBeAnswered”)在不到 1 秒的时间内返回 58 行和三列(两个 GUID 和一个整数:21AF77DA-2E76-47DB-AB54-0E5C85CD9AD8、21AF77DA-2E76-47DB-AB54-0E5C85CD9AF0、2)直接在服务器上执行。我的 SQL 体验非常好,我确信 SQL 服务器上不存在该问题。
但是,当它通过 DAAB 调用时,需要很长时间才能返回对象集合。ExecuteSprocAccessor(...) 通常返回一个 IEnumerable,并且 SP 直到集合被枚举或以其他方式被消耗后才被执行,所以这个问题在消耗发生之前不会出现。
DatabaseInstance.ExecuteSprocAccessor<T>(storedProcedure, rowMapper, args);
鉴于相同的代码返回 >200 行相当复杂的信息没有问题,我很困惑为什么这段代码需要这么长时间(55 秒!)来执行。
任何想法都会受到欢迎...