INDEXヒント句は、SQL文を実行する際に使用するインデックスを指定するための手段です。ただし、INDEXヒント句を使用しても、Oracleデータベースは実行計画を最適化し、最適なインデックスを選択するために自動的にインデックスを切り替えることがあります。そのため、指定したインデックスと異なるインデックスが使用されることがあります。
これは、Oracleデータベースが実行計画を作成する際に、使用可能なインデックスを総合的に評価し、最適な実行計画を作成するためです。具体的には、Oracleデータベースは、インデックスの統計情報、表のサイズ、フィルタリング条件、結合条件など、複数の要素を考慮して最適な実行計画を作成します。
したがって、INDEXヒント句を使用しても、Oracleデータベースが自動的に別のインデックスを選択することがあります。ただし、INDEXヒント句を使用することで、特定のインデックスを使用することを強制することができます。ただし、この場合でも、指定したインデックスが最適なインデックスでない場合があるため、インデックスの選択については注意が必要です。
なお、INDEXヒント句を使用する場合は、そのインデックスが適切なものであることを確認するために、実行計画を確認することをお勧めします。