3

データベースに対して直接実行すると、実行に1秒かかるストアドプロシージャがあります。46 行のデータが返されます。

ストアド プロシージャは、私の Web サイトのコードで実行され、レポートを作成するためのデータを返します。

これはローカルで期待どおりに機能し、レポートの読み込みに非常に短い時間 (1/2 秒) しかかかりません。Web サイトが最初に展開されると、レポートは期待どおりに機能します。

ただし、ストアド プロシージャがタイムアウトになるため、一定時間 (約 30 分) が経過すると、レポートは読み込まれません。

これを回避するために、プロシージャをドロップして作成すると、再び機能し始めますが、これは明らかに私の問題の解決策ではありません。

ストアド プロシージャは、次のようなコードで呼び出されます。

DataSet content = new DataSet();

Database db = DatabaseFactory.CreateDatabase();
DbCommand cmdSearchQuestionLibrary = db.GetStoredProcCommand("SP_NAME");

db.AddInParameter(cmdSearchQuestionLibrary, "@Param1", DbType.Int64, Id);
db.AddInParameter(cmdSearchQuestionLibrary, "@StartDate", DbType.DateTime, dtStartDate);
db.AddInParameter(cmdSearchQuestionLibrary, "@EndDate", DbType.DateTime, dtEndDate);
content = db.ExecuteDataSet(cmdSearchQuestionLibrary);

誰もこれを経験したことがありますか?または、問題の原因を知っていますか?

4

3 に答える 3

2

あなたが試すかもしれない2つのこと

  1. sp_recompile (Transact-SQL) : https://msdn.microsoft.com/en-us/library/ms181647.aspx
于 2016-05-16T18:37:41.597 に答える
0

何が問題なのかを理解する最善の方法は、その時点でデータベースで何が起こっているかを調べることです。一般的な理由の 1 つは、クエリのブロックに基づいている可能性があります。

お役に立てれば、当社の Cotega データベース監視サービスは、このような問題を見つけるために使用される一般的なクエリのほとんどを実行するSQL Azure データベースを分析する無料の機能を提供します。これには、追加の洞察を提供する可能性のあるクエリのブロックが含まれます。

これが役立つことを願っています。

于 2013-08-01T21:25:25.100 に答える
0

私は同じ問題を抱えていました。ストアドプロシージャは何年も機能していましたが、ある日タイムアウトになりました。ストアド プロシージャを再コンパイルし、Web アプリを再度公開します。そして、タイムアウトの問題は再び現れません。

于 2018-01-03T16:37:15.773 に答える