2012-01-27 8 views
0

パフォーマンスの問題を特定し、索引が使用されているかどうか疑問視しています。複数の列を持つDB2索引の使用

私たちは、両方の整数の複合キー "ID"と "Version"を持つテーブルを持っています。

「ID」の最大値を見つけようとするselectがあります。 (これは、違いが生じた場合、Entityフレームワークを介して行われます)。

これはインデックスを使用しますか、それともテーブルスキャンを行いますか?

+0

生成されたSQLと表の構造と索引の定義の両方を見ることができないと分かりにくいかもしれません。 – Charles

答えて

1

ID列が複数列索引の最初の部分として定義されている場合、DB2はその索引を使用してMAX()を判別します。 MAX(VERSION)を実行した場合でもおそらくインデックスを使用しようとしますが、非常に大きなテーブルを使用しているとかなりの処理が必要になります。

explain facilities(リンクはLinux/Unix/Windows 9.7用)を使用して確認できます。

関連する問題