1

データを表示するためにマトリックスを使用しているRDLCレポートに取り組んでいます。

しかし、問題は、巨大なデータがロードされているときにレポートが開かず、代わりにエラーが表示されることですSystem.Outofmemoryexception.

巨大なデータを含むマトリックスのないレポートは正常に機能しています。

ロードしようとしているレコードは約80,000レコードですが、同じ問題に直面した人はいますか?

4

1 に答える 1

0

次の条件の 1 つ以上に該当する場合、要求された操作を完了するのに十分なメモリがコンピューターにありません。

  • レポートが大きすぎるか、複雑すぎます。
  • 他の実行中のプロセスのオーバーヘッドは非常に高くなります。
  • コンピュータの物理メモリが小さすぎます。

レポートは 2 段階で処理されます。実行とレンダリングの 2 つの段階があります。この問題は、実行段階またはレンダリング段階で発生する可能性があります。

この問題が実行段階で発生する場合、クエリ結果で返されるデータによって消費されるメモリが多すぎるために、この問題が発生する可能性があります。さらに、次の要因が実行段階でのメモリ消費に影響します。

  • グループ化
  • フィルタリング
  • 集計
  • 並べ替え
  • カスタムコード

この問題がレンダリング段階で発生する場合、その原因は、レポートに表示される情報と、レポートに表示される情報に関連しています。

解決:

  1. 2 GB を超える物理メモリを使用するように SQL Server を構成する
  2. メモリの制約が少ない時間外にレポートを実行するようにスケジュールします。
  3. それに応じて MemoryLimit 設定を調整します。
  4. Microsoft SQL Server 2005 Reporting Services の 64 ビット バージョンにアップグレードします。
  5. レポートクエリでより少ないデータを返すようにレポートを再設計します。レポート クエリの WHERE 句でより適切な制限を使用します。複雑な集計をデータ ソースに移動します。
  6. レポートを別の形式にエクスポートします。Excel、PDF などの別の形式を使用してレポートを表示することにより、メモリ消費を削減できます。
  7. レポートに含めるデータ領域やコントロールを少なくするなど、レポートのデザインを簡素化するか、ドリルスルー レポートを使用して詳細を表示します。
于 2012-11-28T09:02:28.807 に答える