私のテーブルには、DMLを使用して4億以上のレコードが保存されています。ユニークではなく一意でないインデックス
これらのユニークまたは非ユニークインデックスのどちらがインプリメントに適しているか知りたいですか?パフォーマンスを向上させる。
環境:Oracle 11gの一意性は、その後Bツリー他の利用ビットマップインデックスを使用
高い場合、それはデータを持っている場合、これは完全にテーブル内のデータの種類に依存
私のテーブルには、DMLを使用して4億以上のレコードが保存されています。ユニークではなく一意でないインデックス
これらのユニークまたは非ユニークインデックスのどちらがインプリメントに適しているか知りたいですか?パフォーマンスを向上させる。
環境:Oracle 11gの一意性は、その後Bツリー他の利用ビットマップインデックスを使用
高い場合、それはデータを持っている場合、これは完全にテーブル内のデータの種類に依存
。
可能であれば、一意のインデックスを使用してください。それ以外の場合は、一意でないインデックスを使用します。
つまり、一意のインデックスを使用することができます。重複データを記録する必要がある理由がある場合は、とにかく選択肢がありません。
索引が一意に保証されている場合、Oracleは一意でない索引では不可能な特定の問合せ計画の最適化を実行できます。たとえば、一意の索引を使用して特定の値を調べる場合、マッチするとすぐに索引ブロックを作成します。
"and"条件で2つの列が検索されるテーブルがあります。これらの2つの値の組み合わせは、テーブル内で再び発生することはできませんが、ユニークな制約はありません。一意でない、または一意でないインデックスを持つ方がよいでしょうか? –
@RachitGupta:候補キーに1列または複数列があるかどうかにかかわらず、答えは変わりません。 –
要件によって異なります。列にどのような種類のデータがあるかを示します。 –