sqlite3の処理

先週あたりから処理が怪しい事になっていて、気になっていたバッチ処理。本腰を入れて調べてみた。

10分間隔でバッチを起動してデータをsqlite3に書き込んでいたのだが、正しく処理をしていない模様。手動で起動をしてみたらなんと10分以上処理にかかっている。

バッチが終了していないのに、次のバッチが起動してしまったら異常になるのは当たり前。クリティカル処理で無いし、まさか10分以上もかかるとは思っていなかったので、二重起動のチェックなんて入れていない。

原因を調べるため、業務で使っている機材から作業PCにデータをコピーして処理をしてみると1分もかからない。業務機材なので他の処理も走っているがそれ以外にも原因がありそう。

作業PCで思いつくチェック箇所を調べていき、処理時間を確認してから、実機材でチェック。改めて時間を計ったら18分も処理にかかっている。

一番怪しい所のDB関連を外したら一分もかからない。

ネットで検索。DBに対してトランザクション開始(begin)終了(commit)を入れろとの事

あは、手を抜いて(抜きすぎ)入れていなかった。

入れてみると2分で処理が終了。なんてことない、手の抜きすぎでした。

コメント

タイトルとURLをコピーしました