sql >> データベース >  >> RDS >> Sqlserver

SQL2008のメモリ不足例外

    非常に優れたMicrosoftナレッジベースの記事(ここにリンク) によると これは、使用可能なよりも多くのRAMを割り当てる必要があるクエリが原因で発生します。

    つまり、より多くのRAMが必要であるか、プロセスをより小さなチャンクに分割するためにクエリを再設計する必要があります。

    これは完全な記事の要約です。オリジナルには、コンテンツへのリンクが含まれており、提案に従う必要があるプロセスをより詳細に説明しています。

    SQL Server Reporting Servicesを使用すると、「System.OutOfMemoryException」エラーメッセージが表示される場合があります

    この問題を解決するには、次のいずれかの方法を使用します。

    方法1

    コンピュータに十分な物理メモリを追加します。

    注2ギガバイト(GB)を超えるメモリがある場合は、Boot.iniファイルで/ 3GBスイッチを有効にして、パフォーマンスを向上させることができます。 SQLServerで/3GBスイッチを使用する方法の詳細については。

    方法2

    メモリの制約が少ない時間外にレポートを実行するようにスケジュールします。

    方法3

    それに応じてMemoryLimit設定を調整します。

    注:Reporting Services Webサービスを介してレポートをレンダリングすると、ReportingServicesWebサービスはMachine.configファイルからMemoryLimit設定を取得します。ただし、スケジュールされたレポートは、レポートサーバーのWindowsサービスによってレンダリングされます。レポートサーバーのWindowsサービスは、RSReportServer.configファイルからMemoryLimit設定を取得します。

    方法4

    64ビットバージョンのMicrosoftSQLServer 2005 Reporting Servicesにアップグレードして、ReportingServicesがより多くのメモリを使用できるようにします。

    方法5

    レポートを再設計します。これを行うには、次のいずれかの方法を使用します。

    レポートクエリを再設計します。次の方法でレポートクエリを再設計することにより、メモリ消費を削減できます。

    • レポートクエリで返されるデータが少なくなります。
    • レポートクエリのWHERE句に適切な制限を使用します。
    • 複雑な集計をデータソースに移動します。

    方法B

    レポートを別の形式にエクスポートします。別の形式を使用してレポートを表示することにより、メモリ消費を削減できます。

    方法C

    レポートのデザインを簡素化します。

    次の方法でレポートのデザインを簡素化することで、メモリ消費を削減できます。

    • レポートに含めるデータ領域またはコントロールの数を減らします。
    • ドリルスルーレポートを使用して詳細を表示します。


    1. MySQLを介したBashスクリプトループ

    2. varbinaryを文字列に変換するSQLServer

    3. EM13cでのエージェントの廃止

    4. Exam、Unpaid、Annualなどの休暇タイプに基づいてmysqlデータベースからデータをフェッチします