バックグラウンド:
最近、SSRS 2014 に移行しました。ソース データベースは SQL Server 2008 R2 です。レポートをレンダリングするときに、単に応答を停止し、最終的に 30 分後にタイムアウトするという、レポートでいくつかのパフォーマンスの問題に遭遇しました。レポート サーバーの実行ログを確認すると、データの取得時間は短く、レポートのレンダリング時間は長いことがわかります。DBA がこの問題の 1 か月後に発見した解決策は、READ_COMMITTED_SNAPSHOT を ON に設定することです。
これにより、単一のレポートで非常に奇妙なパフォーマンスの問題が解消されたようです。このレポートは、ユーザーがレポートを生成しようとすると、デッドロックになったように見えます。デッドロックは、一時レポート サーバー データベースで発生しているようで、レポートをブラウザー (IE または Chrome) に返すときにのみ発生し、レポートが生成されるたびに発生するわけではありませんが、複数のユーザーがレポートを生成しようとしているときに発生する可能性があります。同時期にレポートします。レポートには 3 つのレベルのグループ化があり、入力されたパラメーターに対して可変量の行が返されます。
この設定 (READ_COMMITTED_SNAPSHOT) は、現在、二次的な問題を引き起こしているようです。ユーザーがレポートのページをナビゲートできるレポートのナビゲーション バーでは、アクティブな [次のページ] ボタンが最初に 0 の 0 を表示します。ユーザーが [次のページ] ボタンをクリックすると、ブラウザーはポストバックを実行し (次のページに移動する場合と同様)、最初のページで画面を更新します。これで、ナビゲーション バーに X の 1 が表示されます。
すべての SSRS サーバーが READ_COMMITTED_SNAPSHOT ON を受け取ったので、DBA に DEV サーバーを OFF に更新するように依頼しました。これが完了したら、すべてのレポート (約 10 個) を再生成しました。予想どおり、最初はそれぞれのレポートに X ページのうちの 1 つが表示されました。ここで、このプロパティを ON に設定することが、レポートを修正するための正しいアプローチであったかどうか疑問に思います。
レポートのスナップショットを作成することが良い解決策になるかどうかを考えましたが、パラメーターの選択が異なるユーザーがいるため、残念ながらそうではないと思います。
質問:
- READ_COMMITTED_SNAPSHOT を on に設定するのではなく、上記のレポート パフォーマンスの問題を解決するためのより良い方法はありましたか?
- READ_COMMITTED_SNAPSHOT と ALLOW_SNAPSHOT_ISOLATION の両方を true/on に設定する必要がありますか?
- SSRS のナビゲーション バーに関連するこの問題に遭遇した人はいますか? また、どのようにして問題を解決できましたか?
アップデート:
まったく別のエラーが発生したため、最終的に READ_COMMITTED_SNAPSHOT 設定をロールバックする必要がありました。上記の問題は、2 か月連続で問題が報告されることなく、解決されたように見えます。残念ながら、そもそも何が問題を引き起こしたのか、何が問題を解決したのか (おそらくハードウェアの変更) は誰にもわかりません。