6

複数のレポートを含むレポート ソリューションがあります。これまでのところ、問題なく SPROC に基づくデータセットを追加できました。ただし、最新のデータセットを追加しようとして、そのクエリ タイプに SPROC を使用すると、[フィールドの更新] をクリックすると、次のエラーが表示されます: タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

[データ ソース プロパティ] > [編集] > [接続のテスト] でデータベース接続をテストしましたが、問題なく動作しています。

次の領域でタイムアウトを 100 に増やしました。

  1. データソースの接続文字列 - Connect Timeout=100
  2. [ツール] > [オプション] > [データベース ツール] > [クエリおよびビュー デザイナ]。長時間実行クエリのキャンセルは 100 に設定されています。
  3. [ツール] > [オプション] > [データベース ツール] > [テーブルおよびデータベース デザイナー] > [テーブル デザイナーの更新の接続文字列のタイムアウト値を上書きする] にチェックを入れました。100 に設定された後のトランザクション タイムアウト

SPROC は SQL データベースで正常に動作します。約55秒かかります。

他のアイデアはありますか?ありがとう。

更新: SPROC を使用してデータセットを追加できなくなりました。SPROC がすべて SQL で正常に動作しているとはいえ、!!!!!!!!

4

4 に答える 4

5

Report Builder を使用している場合は、DataSet でもタイムアウトを増やすことができます。

Report Builder の DataSet タイムアウト設定

于 2015-10-07T12:22:29.120 に答える
2

新しく追加された列をストアドプロシージャに追加する際にも同じ問題に直面しました。

次の方法でこの問題を克服します。

最後の選択コマンドを除くすべてのクエリをコメントとしてストアド プロシージャを変更します。

新しい列が追加されたので、sp の quires のコメントを外します。

于 2015-08-11T09:52:21.543 に答える
1

レポートで覚えておくべきことは、レポートが実行されると、すべてのデータセットが実行可能であることを確認するためだけにすべてのデータセットを実行しようとし、それらが要求しているデータを返すことができるということです。したがって、各プロシージャを個別に実行することで、実際には SSRS と重複することはありません...正直言って気にしないでください。

レポートの実行中に sp_who を実行するか、手順を手動で実行して共通のテーブルを確認することもできます。あなたの proc はデータセットを返すのに 52 秒かかるので、かなりの重労働をしていると仮定します。クエリがなければ、正確な問題が何であるかを知ることはできません。

NO LOCK を使用して問題が解決するかどうかを確認することをお勧めします。もしそうなら、あなたのプロシージャはデータのために戦っており、お互いをブロックしています...おそらく無限ループに陥っています. NO LOCK の使用は修正ではありません。ただし、それが何をするかを読んで、自分で判断してください。

于 2012-08-21T19:18:03.607 に答える