gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:51:22 24 4
gpt4 key购买 nike

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

这是有问题的代码

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 中对此进行了跟踪,并对同一数据库运行了相同的查询,结果返回数据的时间不到一秒钟。

如果我延长超时时间,我会发现返回相同的数据需要一分钟多的时间,这是 Not Acceptable 。

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

最佳答案

在尝试了几件事之后,结果证明解决方案是将 WITH Recompile 添加到存储过程中。似乎数据库坚持了一个糟糕的执行计划。

关于c# - ExecuteDataSet 超时发生在非常快的存储过程上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com