こんなコード走らせてたらいつ鯖が落ちるか判ったもんじゃないので、まずは1シート目だけ処理を分解して(当然、シートごとにメソッドに切り出しなんて高度なこと期待出来る訳も無く)データベースコネクションを一本づつ張って順次処理するように書き換えましたよ。


報告書。

改修前:出力条件。「シート1。期間指定 2011/11/01〜2011/11/30」 応答時間:5分21秒
回収後:出力条件。「シート1。期間指定 2011/11/01〜2011/11/30」 応答時間:3秒
   「シート1。期間指定 2010/11/01〜2011/11/30」 応答時間:4秒


‥‥、(イカ略)