C# 在非常快速的存储过程上发生ExecuteDataSet超时

C# 在非常快速的存储过程上发生ExecuteDataSet超时,c#,ado.net,dataset,C#,Ado.net,Dataset,我正在尝试调试一个在我们的一个遗留系统中出现的问题 这就是问题中的代码 DataSet content = new DataSet(); Database db = DatabaseFactory.CreateDatabase(); DbCommand cmdSearchQuestionLibrary = db.GetStoredProcCommand("CUP_Reports_GetTrainerPerformanceReport"); db.AddInParameter(cmdSearch

我正在尝试调试一个在我们的一个遗留系统中出现的问题

这就是问题中的代码

DataSet content = new DataSet();

Database db = DatabaseFactory.CreateDatabase();
DbCommand cmdSearchQuestionLibrary = db.GetStoredProcCommand("CUP_Reports_GetTrainerPerformanceReport");
db.AddInParameter(cmdSearchQuestionLibrary, "@PartnerID", DbType.Int64, partnerId);
db.AddInParameter(cmdSearchQuestionLibrary, "@StartDate", DbType.DateTime, dtStartDate);
db.AddInParameter(cmdSearchQuestionLibrary, "@EndDate", DbType.DateTime, dtEndDate);
db.AddInParameter(cmdSearchQuestionLibrary, "@TrainerId", DbType.Int32, trainerId);
db.AddInParameter(cmdSearchQuestionLibrary, "@AssessmentType", DbType.Int32, assessmentType);

content = db.ExecuteDataSet(cmdSearchQuestionLibrary);
超时发生在
db.ExecuteDataSet
上。我在SQLServerProfiler中对此进行了跟踪,并对同一数据库运行了相同的查询,返回数据只需不到一秒钟

如果我延长超时时间,我会发现返回相同的数据需要一分钟,这是不可接受的


这里有什么我不知道的吗?我想知道
db.GetStoredProcCommand
是否正在打开一个需要关闭的连接,它只是在等待该连接关闭。

尝试了几件事情后,结果证明解决方案是通过重新编译将
添加到存储过程中。数据库工厂是名称空间Microsoft.Practices.EnterpriseLibrary.Data的一部分。它是“调用默认数据库对象的方法。从//ConnectionSettings.config文件读取默认设置。”也就是说,我很想运行一个VisualStudio分析器,看看代码中的阻塞到底在哪里,并通过这种方式跟踪问题。但是,您正在创建并使用的数据集有多大?它只返回1行数据和4列数据,所有数据都是非常小的数据位。i、 e.67.5,连接,2,剑桥管理,嗯。。。关于企业库数据访问应用程序块,存在一些已知问题,添加参数可能比直接使用ADO.NET慢100倍?我很想对直接ADO方法进行一次测试,看看结果如何,参见简单的参考示例