C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: OutOfMemoryExceptionについて


(過去ログ 59 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■33851 / inTopicNo.1)  OutOfMemoryExceptionについて
  
□投稿者/ めぐ (3回)-(2009/03/11(Wed) 15:45:02)

分類:[C#] 

C#.NET(vs2005)、windowsアプリ、SQLServer2005で開発しています。

2つのDB(ADB、BDB)から1つのテーブルについてデータセットを
取得(数万件ずつ)して、プログラムにてマッチング処理を行い
BDBを差分更新する処理を行っていますが、OutOfMemoryExceptionが
出る様になりました。今までは出てませんでした。件数は以前より増えました。
エラーを検索をするとメモリ不足と書いてありました。メモリは4Gです。

上記エラーを解決するには「ワーカープロセスのメモリリサイクル」
http://www.i-site.jp/dd.aspx?itemid=2900)を行うと書いてあった
のですが、これは今回の事象を解決する手段なのでしょうか?

又、データ件数が多い事でメモリを大量に使用するならば、
上記処理はストアドを作成してSQLServer側で行えば解決出来るのでしょうか?

皆様、お忙しい所誠に申し訳御座いませんが、ご教授願います。
引用返信 編集キー/
■33853 / inTopicNo.2)  Re[1]: OutOfMemoryExceptionについて
□投稿者/ オショウ (117回)-(2009/03/11(Wed) 16:02:22)
> 2つのDB(ADB、BDB)から1つのテーブルについてデータセットを
> 取得(数万件ずつ)して、プログラムにてマッチング処理を行い

  この部分、データセットに取得している段階で、レコード数増加に伴い
  当然、いつかはメモリ不足に落ちることになります。

  よって、SQL文でA・Bの差分を抽出(キーのみ?)してから、
  Bにその抽出されたキーで街頭する内容を更新処理する・・・

  と言う流れになろうかと。

  それでもレコード数が増大すれば差分抽出だけでも搭載メモリ容量
  に達する場合があります。

  DB設計がどうなっているか・・・ですが、最悪の事態を考えると
  一時テーブルに差分情報を一旦抽出してからBに更新処理を行う。
  と言う2段構えになろうかと。

  DB構造が解りませんので、あくまで概念的な流れをコメントして
  おきます。

以上。
引用返信 編集キー/
■33854 / inTopicNo.3)  Re[2]: OutOfMemoryExceptionについて
□投稿者/ オショウ (118回)-(2009/03/11(Wed) 16:02:59)
>   Bにその抽出されたキーで街頭する内容を更新処理する・・・

  該当ね!・・・

以上。
引用返信 編集キー/
■33857 / inTopicNo.4)  Re[3]: OutOfMemoryExceptionについて
□投稿者/ めぐ (6回)-(2009/03/11(Wed) 16:56:11)
オショウさん

アドバイス有難う御座いました。
上記方法で実装してみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -