UPDATE 2.4.2010 ええ、これは古い質問ですが、最新情報を提供すると思いました。そのため、ReportViewer を再度使用していますが、最初の読み込みでレンダリングが遅くなります。唯一の違いは、SQL データベースがレポート サーバー上にあることです。
更新 3.16.2009
プロファイリングを行いましたが、最初の呼び出しで ReportViewer のレンダリングを遅らせているのは SQL ではありません。最初の呼び出しで、ReportViewer コントロールが UI スレッドをロックし、プログラムが応答しなくなります。約 5 秒後、ReportViewer は UI スレッドのロックを解除し、「レポートが生成されています」と表示し、最後にレポートを表示します。5 秒が大したことではないことはわかっていますが、これは起こるべきではありません。私の同僚は彼のプログラムで同じことを行い、ReportViewer は要求があればすぐに「レポートが生成されています」と表示します。
唯一の違いは、レポート サーバーが 1 つのサーバーにあり、データが別のサーバーにあることです。ただし、SSRS 内でレポートを作成している場合、遅延はありません。
アップデート
ReportViewer の最初の読み込みだけに時間がかかることに気付きました。同じまたは異なるレポートの後続の各ロードは高速にロードされます。
ReportViewer.RefreshReport() メソッドが呼び出されると、レンダリングに最大 30 秒かかる可能性のあるリモート処理モードで使用しているWinForms ReportViewer があります。ただし、レポート自体は高速に実行されます。
これは、ReportViewer をセットアップするためのコードです。
rvReport.ProcessingMode = ProcessingMode.Remote
rvReport.ShowParameterPrompts = False
rvReport.ServerReport.ReportServerUrl = New Uri(_reportServerURL)
rvReport.ServerReport.ReportPath = _reportPath
これは、ReportViewer がレンダリングするのに最大 30 秒かかる場合がある場所です。
rvReport.RefreshReport()