なんとなくカテゴリ追加

SQLの実行計画というのがある。SQLは結局条件を示すだけでその条件を使って検索する手順は示さない。実行計画というのはそのOracleが踏むべき手順を示す。ただこれが所詮機械のやることなので時々とんでもない手順を生成してしまうことがある。
今回ハマったケースは正にそれでアルゴリズム論的に言えばワーストケースに対してそうと知らず手順を適用してしまった感じ。しかしそれでも実行時間の桁が二桁変わるってのは非常にレアなケースだと思う。やはり事前検証というのは大事だ。
結局ヒント句を使ってIOベースでコスト計算していたところをCPUベースのコスト計算に変えてあげて解決。