バッチアプリケーションの性能問題

先日より、バッチアプリケーションの受入テストの支援をしているのですが、

バッチ処理の性能が悪すぎて処理が終わらない為、調査をしています。

 

まず、なぜ性能問題が発生するかと言うと、テスト時には数十件程度のテストデータを用意して主にバッチ処理結果の確認をしている程度なので性能の悪さに気づくことが出来ません。

 

実際、受入テストでは実際のデータ(数十万件)を使用して確認するので性能の遅さに気づくことになります。

 

本来であれば、要件分析(どんなシステムが欲しいか)の時に非機能要件(機能では無いが備わっていないといけない事)として「○○データ30万件、△△データ5万件を処理してバッチ処理が15分以内に終わること。また、データの増加量は毎月3%でシステムの耐用年数は10年間、データの保存期間も同様とする。」と言うような要件を定義するのですが、要件定義では機能要件のみが定義され、非機能要件は見積に入っていませんでした。

 

長くなってしまったので要件分析、性能チューニングの方法は、また別の機会に書きます。