0

非常に高速に実行される小さなクエリがあります。そしてどういうわけか、インデックスのない列にインデックスを追加すると高速になると思いましたが、そうではなかったことがわかりました。実際、ディスクの読み取りと実行時間が増加します。私が聞きたいのは、インデックスがどのように機能するか、およびパフォーマンスが向上するのではなく低下する可能性がある理由について、誰かが詳細な情報を説明してくれることです。

前もって感謝します!

PS : 私の RDBMS : オラクル

4

1 に答える 1

2

小さなテーブルで完全に可能です。テーブルが本当に小さい場合は、1 回の読み取りでテーブル全体をメモリに読み込むことができ、完全なテーブル スキャンをメモリ内で完全に実行できる可能性があります。ここにインデックスを追加するには、I/O を 2 倍にするために、少なくとも 1 つのインデックス ページを読み取り、続いてデータ ページを読み取る必要があります。これは珍しいケースですが、前代未聞ではありません。

ただし、これは私の推測にすぎません。何が起こっているのかを正確に把握するには、インデックスをオンにしてクエリの実行プランを取得し、インデックスを削除して、インデックスなしで実行プランを取得します。プランを比較して、インデックスを再度追加するかどうかを決定します。

共有してお楽しみください。

于 2012-09-08T01:58:59.937 に答える