2016-11-21 10 views
0

mssqlで実行中のストアドプロシージャが正常に実行されていました。 3日前、コード内で同じ手順を実行すると、Timeoutの有効期限が切れました。基になるテーブルに実行中のプロセスがあるかどうかを確認しようとしましたが、何も存在しないようです。デッドロックの状況をチェックして、デッドロック状況はありません。誰もこの解決策を得るために次に何をするべきかを提案できますか?私は管理スタジオでrptPaymentsDateOptionsストアドプロシージャを実行した場合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; 
    } 

だ、それが正常に実行されます。

答えて

1

、あなたはまた、任意の追加のインデックスがクエリをスピードアップする可能性があるかどうかを確認するために、あなたのテーブルとデータを見直すことができ、タイムアウト

DbCommand.CommandTimeout Property

を増やすことができます。

+0

フィードバック@ChrisBintのおかげで、データベースの切り離しと再接続がタイムアウトの問題を解決したことに気付きました。それは、それを妨害するものがあると私に思い出させる。しかし、これを再現する必要がある場合は、DbCommand.CommandTimeoutプロパティを設定します。ありがとうございました – Tonto

関連する問題