Pages

2013/12/02

[SQL Server] 種類 'System.OutOfMemoryException' の例外がスローされました。 (mscorlib)

Management Studio (SSMS) でクエリ実行時に、結果セットが巨大である場合に発生するメモリ不足エラー。大きめのテーブルの結果セット (グリッド) を全選択してそのままコピーしようとすると発生したりする。
32 ビット OS の場合、そもそも SSMS が 2G の制約を受け、かつ、結果をグリッド表示する場合は 64 KB まで。結果をテキスト表示する場合は 8 KB までという制約があるらしい。

解決方法は以下の 3 つだが、最後のコマンドはややハードルが高いが、自動化処理などの応用も利く。

  1. 結果をテキストで表示
    [クエリウィンドウで右クリック] - [結果の出力] -  [結果をテキストで表示]
  2. 結果をファイルに出力
    [クエリウィンドウで右クリック] - [結果の出力] -  [結果をファイルに出力]
  3. sqlcmd ユーティリティの使用
    コマンドラインから SQL を実行する。
    http://technet.microsoft.com/ja-jp/library/ms162773.aspx

[ 参考 ]
"System.OutOfMemoryException" exception when you execute a query in SQL Server Management Studio - Microsoft

Related Posts Plugin for WordPress, Blogger...