ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

バッチが遅い

12,000件のトランザクションデータがあって、1件ずつマスタ(10万件くらいある)を参照するっていう作りになっているバッチなのですが、なんだか異常に遅くて(1時間以上かかった)びびってしまいました。
内部テスト環境でやったときには速かったので、SQL*LoaderのSKIP_INDEX_MAINTENANCEでインデックスが無効になっているのかとおもいきや、そうでもないらしい。(以前それではまった)
で、思い当たったのが統計情報。10gからCBOがデフォルトなので、なんかその辺でヘンなアクセスパスになっているらしい。user_tablesのnum_rowsもNULLっぽかったし。早速RULEヒント付けてみたら速くなりました。
遅いっていっても、1件あたりの処理時間は0.3[秒]くらいなんだけども、0.3[秒] x 12,000[件] = 1[時間]というわけで、0.3[秒]ってバカに出来ないなぁ。などと思ってしまいました。
そんなわけで、DBA(が別のチームとして外だしされている)に文句つけているのですが、まだレスポンスがありません。。