LoginSignup
0
0

More than 1 year has passed since last update.

SQL文のヒント句も実行計画でも同じインデックスを使用しているのですが、ASHレポートで確認すると違うインデックスを使用しているという結果が出ていますが、なぜかわからないのです

Posted at

ASHレポートで実行計画が異なるインデックスを使用していると報告されている場合、いくつかの可能性が考えられます。

実行計画のキャッシュ
実行計画は、SQLの実行中に決定されます。同じSQLを複数回実行する場合、Oracleはキャッシュされた実行計画を再利用することができます。この場合、異なるインデックスを使用する実行計画を得ることがあります。

ヒントの無視
ヒントは、SQLの実行計画を制御するために使用されます。しかし、Oracleは最適な実行計画を決定するために自動的に最適な方法を選択するため、ヒントが無視される場合があります。この場合、SQL文のヒント句があっても、実際には別の実行計画が使用されることがあります。

統計情報の古さ
実行計画を決定する際に、Oracleは表の統計情報を使用します。表が変更された場合、統計情報が古くなっている可能性があります。この場合、異なるインデックスを使用している実行計画を得ることがあります。

以上のような理由により、SQL文のヒント句と実行計画が異なるインデックスを使用する場合があることがあります。詳細を確認するために、ヒントが正しく適用されているかどうか、統計情報が最新であるかどうかなど、SQLの詳細を確認することをお勧めします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0