これが問題かどうかはわかりませんが、Oracleはクエリを解析するときにバインド変数値を確認し、将来の実行のためにクエリプランを保存するため、新しいクエリを実行するたびにクエリを解析し続ける必要はありません。バインド変数のセット。しかし、時々クエリが再解析されます。解析中に異常なバインド変数値が渡された場合、不正なプランが保存されて使用されます。これは、バインド変数の呪いのようなものです。これらは解析を減らしますが、クエリが再度解析されるときに、非定型のバインド変数値で計画を反転させることができます。ヒントが役立ちます。 SQLプロファイルを使用して、プランを変更する傾向のあるバインド変数を使用してクエリのプランをロックします。オプティマイザ統計を収集するタイミングと方法をカスタマイズして、バインド変数に渡される値に関係なく適切な計画を作成できる場合があります。
とにかく、それは私がいつも見ているものであり、あなたの問題かもしれないし、そうでないかもしれません。
ボビー