0

だからここで私はこの巨大なオラクル10gテーブルを見ています。そのインデックスを調べたところ、すべての列が1つの一意のインデックスの下にあることがわかりました。これは実際にパフォーマンス上の利点を提供しますか?

4

2 に答える 2

2

おそらく、そうではない。行が実際に一意であることを保証するために一意のインデックスが制約を実装している可能性があり、パフォーマンスを向上させることはまったく意図されていません。インデックス付きルックアップ クエリは、実際のテーブルにアクセスする必要がないため、パフォーマンスが向上する可能性があります。

一見すると、これは INDEX ORGANIZED テーブルとして作成されるべきだったように思えます。

于 2010-07-16T15:52:51.463 に答える
0

パフォーマンスの観点からは、すべてのフィールドを 1 つのインデックス (一意であるかどうかにかかわらず) に含めることは、一般的にはお勧めできません。

  • テーブルを更新すると、そのインデックスが更新されます。「通常の」テーブル (通常という言葉は非常に大まかに使用されます) では、インデックスが作成されていないフィールドがいくつかあります。これらのフィールドの 1 つが更新されると、インデックスを更新する必要がないため、より効率的になります。
  • 説明されているインデックスは、クエリの最適化において多少制限されています。たとえば、テーブルにフィールド a、b、c、d、および e があり、この順序でフィールドを使用してインデックスが定義されているとします。aWHERE 句で参照しないクエリは、そのインデックスを使用できません。
  • 関連するフィールドの数とサイズによっては、このようなインデックスに非常に大きなキーが含まれる可能性があります。キーが大きいほど、各ページに格納できるキーの数が少なくなることを意味するため、インデックスの更新は、より多くのページの読み取りと書き込みが必要になることを意味します。
于 2010-07-17T01:42:48.530 に答える