我正在尝试调试我们的一个遗留系统中出现的问题。
这是有问题的代码
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
. 我在 SQL Server Profiler 中对此进行了跟踪,并对同一个数据库运行相同的查询,并且返回数据只需不到一秒钟的时间。
如果我延长超时时间,我可以看到返回相同数据需要一分钟以上,这是不可接受的。
这里有什么我想念的吗?我想知道是否db.GetStoredProcCommand
正在打开一个需要关闭的连接,它只是在等待该连接关闭。