SQL ServerにSystemが表示されます.OutOfMemoryException異常の解決方法

2823 ワード

今日SQL Server 2008でSQLスクリプトファイルを実行すると、「System.OutOfMemoryException」というタイプの異常エラーが発生します.
このエラーの主な原因はSQLスクリプトファイルが大きすぎて、100 Mを超えたと推定されています.解決方法はスクリプトファイルをいくつかのスクリプトファイルに分けて、それぞれ実行すればいいです.
Microsoftの公式ソリューション:
理由:
この問題は、要求された操作を完了するのに十分なメモリがないためです.
SQL Server 2000 Reporting Servicesの制限により、メモリバインドの処理レポートの一部が作成されます.たとえば、クエリー結果処理とオブジェクトモデルのレンダリングはメモリに制限されます.
コンピュータには、要求された操作を完了するのに十分なメモリがありません.1つ以上の次の条件が真です.
1.レポートが大きすぎたり複雑すぎたりします.2.他の実行中のプロセスの費用は非常に高いです.3.コンピュータの物理メモリが小さすぎます.
レポートを処理するには、2つの段階に分けられます.2つのフェーズは実行とレンダリングです.この問題は、実行フェーズ中またはレンダリングフェーズ中に発生します.
この問題は、実行フェーズで発生する場合、クエリの結果に返されるデータの消費量が多すぎるためです.また、次の要因は、実行フェーズでメモリ消費に影響します.
1.グループ2.フィルタ3.重合4.ソート5.カスタムコード
レポートにどのような情報が表示されるか、レポートに情報が表示される方法が原因で、レンダリングフェーズでこの問題が発生します.
1.数量とタイプのコントロール2.これらのコントロール間の関係3.フォーマット4.表示されるデータ量
ソリューション:
この問題を解決するには、次のいずれかの方法を使用します.
方法1
コンピュータに十分な物理メモリを追加します.
なお、2ギガバイト(GB)を超えるメモリであれば、この/3 gbをBootに切り替えることができます.Iniファイルのパフォーマンスが向上します.SQL Serverで/3 gbスイッチを使用した方法の詳細については、次の文書番号をクリックして、Microsoft Knowledge Baseの該当する文書を確認します.
方法2
レポート計画は、メモリ制限が低い非ピーク時に実行されるようにスケジュールされます.
方法3
調整場所を設定します.
注意:プレゼンテーション時には、Machine.configファイルで場所を取得します.ただし、計画されたレポートには、レポート・サーバによるWindowsサービスが表示されます.レポートサーバのWindowsサービスはRSReportServerから取得する.configファイルの場所.
詳細については、「詳細」セクションを参照してください.
方法4
64ビットバージョンのMicrosoft SQL Server 2005レポートサービスにアップグレードします.
方法5
レポートを再設計します.この操作を実行するには、次のいずれかの方法を使用します.
方法A
レポート・クエリーを再設計します.レポート・クエリーを再設計することで、次の方法でメモリ消費量を削減できます.1.レポート・クエリーでは、より少ないデータが返されます.2.レポートクエリのWHERE句で使用されるより良い制限.3.データ・ソースに移動する複雑な集約.
方法B
レポートを別のフォーマットにエクスポートします.異なるフォーマットでレポートを表示することで、メモリの消費量を削減できます.次の表に、ほとんどのメモリ消費量から最小限のメモリ消費量に順次エクスポートされるフォーマットをいくつか示します.

            
  
Microsoft Excel   Excel
(TIFF)    
PDF      (PDF)
HTML     HTML
CSV      ; CSV
XML      XML ;

注意:XSLT変換が適用されていない場合、このフォーマットはCSVフォーマットよりもメモリの消費量が少なくなります.
方法C
レポートの設計を簡略化します.レポート設計を簡素化することで、メモリ消費量を削減できます.1.レポートには、より少ないデータ領域またはコントロールが含まれます.2.ドリル・レポートで詳細を表示します.また、レポートの目的がデータの集合である場合、他のMicrosoft製品のパフォーマンスを向上させることができます.たとえば、データ変換サービス(DTS)またはMicrosoft SQL Server 2005年統合サービスを使用できます.

次の例では、この問題を解決する方法を示します.次の例を考慮してください.
1.PDF形式で、Excel形式では、レポートマネージャから160ページを返すレポートを表示できません.8.5を使用する場合× 11インチページサイズの場合、レポートは250ページをはるかに超える可能性があります.2.レポートのデータソースは、レポート・サーバーの500メガバイト(MB)のデータを返します.通常、SQL Server 2000年レポート・サービスでは、データセットで使用されるメモリの2~3倍が必要です.したがって、SQL Server 2000レポートサービスでは、レポートを表示するためにほぼ1.5 GBのメモリが必要です.
この問題を解決するには、この例でレポートを再設計し、フィルタ値のセットが限られている要約データのみを表示します.また、レポート・データからデータベース・クエリーと集約を抽出するレポート自体が集約されていないことを確認してください.これらの方法は、レポート・サーバに返されるデータ量を大幅に削減するのに役立ちます.したがって、レポートを成功させ、より迅速に表示できます.