質問

私はここ 2 日間、お客様の生活環境の問題を見つけようと、ぐるぐると走り回っていました。Google が提供したエラー メッセージに関する情報は非常に限られていたため (正確には 5 件の結果)、ここに投稿した方がよいのではないかと思いました。

このエラーは、SSRS2005 で特定のパラメーターが使用されているときに特定のレポートを要求するときのタイムアウトに要約されます。

導入シナリオは次のとおりです。マシン#1ランニングレポートサービス(SQL2005、W2K3、IIS6)マシン#2ランニングDataWarehouseデータベース(SQL2005、W2K3)は、両方のマシンが同じVMクラスターとLANで実行されている#1のデータソースです。

レポートは非​​常に単純な SP を要求します。これを sp(param $a, param $b) と呼びます。param $a を指定してリクエストすると、正しく実行されます。param $b を使用すると、グローバル タイムアウト期間が経過するとタイムアウトになります。

#2 の SQL Management Studio から直接、param $b を指定してストアド プロシージャを実行すると、まったく問題のない結果が返されます (3 ~ 4 秒以内)。

#2 でデータウェアハウス データベースをプロファイリングしましたが、param $b が使用されると、レポート サービスからデータベースへのクエリが #2 に到達しません。

SSRS Web インターフェイスからレポートを直接呼び出すときに param $b を使用すると、タイムアウト時に表示されるエラー メッセージは次のとおりです。

「レポート処理中にエラーが発生しました。データセット DataSet の次のデータ行を読み取ることができません。現在のコマンドで重大なエラーが発生しました。結果があれば、破棄する必要があります。ユーザーによって操作がキャンセルされました。」

SSRS の ExecutionLog には、エラー メッセージ rsProcessingAborted 以外にも多くの情報が含まれています。

この問題を解決する方法についてのアイデアが不足しています。ご意見、ご提案、アイデアをいただければ幸いです。

前もって感謝します!

役に立ちましたか?

解決

最初に行う必要があるのは、統計が最新であることを確認することです。

(これは、誤ったクエリ プランが使用されているケースのように思えます。 パラメータスニッフィング, 、このSOの回答で説明されているように: SQL Server でのパラメータ スニッフィング (またはスプーフィング)).

SQL Server 2005 でこれを修正する 1 つの方法は、 最適化 クエリのヒント。こちらも参照 SQL Server 2005 の OPTIMIZE FOR クエリ ヒント

また、一部またはすべてのインデックスに対して定期的にスケジュールされたインデックス再構築ジョブはありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top