メインコンテンツへスキップ

バッチ処理 メモリ使用量の削減

コメント

5件のコメント

  • nkmt

    こんにちは。
    SQLコマンドを365回×年数分 子タスクで呼び出すよりかは
    Group By で日付毎の計を1回の取得で済ませてしまうのもいいのかもしれないと思いました。

  • Tanda

    KMさん、

    Windows側で、「ページングファイル」のサイズを増やしてもらうのが一番だと思いますよ。スワップ中にバッチが多少遅くなるかもしれませんんが、メモリ不足で落ちることはなくなるはずです。

  • nkmt

    KM様
    10年分なら3650回 子タスクCALLし、3650回 SQLコマンドを実行していますよね。
    その作りのままだとすれば、子タスクを常駐YESにするのもいいのかもしれません。
    自分なら
    SELECT 日付,Sum(売上) FROM 対象データ
      WHERE 日付  BETWEEN ’20240101’ AND ’20241231’
      GROUP BY 日付
      ORDER BY 日付
    で1年分の日別の計を1回のSQL文で結果入手したいです。

  • KM

    nkmtさん

    タスクの構造に関しては、エクセル記述の関係で色々考慮した結果、このような構造になったような記憶があります。タスク常駐、試してみたいと思います。ご回答ありがとうございました。

    Tandaさん

    プログラム側ばかり考えていましたが、Windows側でも対策可能なんですね。私自身そこらへんの知識が乏しいので調べてみます。ご回答ありがとうございました。

  • Tanda

    KMさん、

    設定箇所は、「コントロールパネル」→「システム」→「システムの詳細設定」→「パフォーマンス」→「設定」→「詳細設定」→「仮想メモリ」→「変更」→「カスタムサイズ」→「初期サイズ・最大サイズ」です。

    今は、メモリが安くてふんだんに手に入りますから使う機会が少なくなったかもしれませんが、メモリが高かった昔は、ここをよく使ったものです。

サインインしてコメントを残してください。