sql >> データベース >  >> RDS >> Oracle

Oracle:単一の複数列インデックスまたは 2 つの単一列インデックス

    場合によります...

    column1 だけにインデックスが作成される可能性はほとんどありません。 column1, column2 に複合インデックスが既にある場合に役立ちます . column1 以降 column1 のみを持つテーブルに対するクエリである先行インデックスです。 述語として、複合インデックスを使用できるようになります。インデックスのフル スキャンと column2 の存在を実行する必要があるクエリを頻繁に実行している場合 インデックスのサイズが大幅に増加します。column1 だけのインデックスが フル インデックス スキャンはより少ない I/O を実行する必要があるため、より効率的です。しかし、これは非常に珍しい状況です。

    column2 だけのインデックス テーブルに対するクエリの一部が column2 だけで述語を指定している場合に役立つ可能性があります . column1 の明確な値が比較的少ない場合 、column2 のみを指定するクエリを満たすために、Oracle が複合インデックスを使用してインデックス スキップ スキャンを実行できる可能性があります。 述語として。ただし、スキップ スキャンはレンジ スキャンよりも効率が悪い可能性が高いため、column2 だけのインデックスが それらのクエリに役立ちます。 column1 に個別の値が多数ある場合 、スキップスキャンはさらに効率が悪く、インデックスは column2 だけになります より有益でしょう。もちろん、column2 を使用してテーブルをクエリしない場合は、 column1 に述語も指定せずに 、 column2 だけにインデックスは必要ありません .



    1. WAMP仮想ホストが機能しない

    2. SELECT $(ドル記号)

    3. Postgresqlは、特定の合計金額に達するまで選択します

    4. ADOを使用したOracleへの接続