2016-11-21 37 views
0

我在運行正常的mssql上有一個已經運行的存儲過程。 3天前,在代碼中運行相同的過程開始給我Timeout過期。試圖檢查底層表上是否有任何正在運行的進程,但似乎沒有。檢查了死鎖情況,但沒有。任何人都可以建議下一步做什麼來解決這個問題?C#方法超時過期

下面的代碼

public DataSet rptPaymentsByDateOptions(DateTime dateFrom, DateTime dateTo, string level, string sessionID, string degreeID, string programID, string jrnalSrce) 
    { 
     DataSet ds = new DataSet(); 
     Database db = DatabaseFactory.CreateDatabase(); 
     DbCommand cmdSem = db.GetStoredProcCommand("[iSchool].[rptCurrentSem]"); 
     DbCommand cmd = db.GetStoredProcCommand("[iFinance].[rptPaymentsByDateOptions]"); 
     db.AddInParameter(cmd, "DateFrom", DbType.Date, dateFrom); 
     db.AddInParameter(cmd, "DateTo", DbType.Date, dateTo); 
     db.AddInParameter(cmd, "Level", DbType.String, level); 
     db.AddInParameter(cmd, "SessionID", DbType.String, sessionID); 
     db.AddInParameter(cmd, "DegreeID", DbType.String, degreeID); 
     db.AddInParameter(cmd, "ProgramID", DbType.String, programID); 
     db.AddInParameter(cmd, "JrnalSrce", DbType.String, jrnalSrce); 
     db.LoadDataSet(cmdSem, ds, "rptCurrentSem"); 
     db.LoadDataSet(cmd, ds, "rptPaymentsByDateOptions"); //Timeout error here 
     return ds; 
    } 

如果我執行存儲在Management Studio程序rptPaymentsDateOptions,它成功運行。

回答

1

可以增加超時

DbCommand.CommandTimeout Property

您還可以查看您的表和數據,看看是否有額外的索引可能加快查詢。

+0

感謝@ChrisBint的反饋,我意識到分離和重新連接數據庫解決了超時問題。這讓我覺得有些東西阻止了它。然而,我會設置DbCommand.CommandTimeout屬性,如果這應該重新發生。謝謝 – Tonto