非パーティション索引は、非パーティション表にもパーティション表にも作成できます。非パーティション索引はデータ・ウェアハウス環境で非パーティション表で主に使用され、一般的に一意の制約のステータスをデータ・ウェアハウス環境で施行する必要がある場合に一意性を施行します。パーティション表で非パーティション・グローバル索引を使用すると、主キーまたは一意キーを施行できます。非パーティション(グローバル)索引は、パーティション化キーに含まれない1つの列または複数の列に対する等価述語またはIN
リストに基づいて、通常ごく少数の行を取得する問合せで役立ちます。このような場合、一致するすべての行を検出するために、1つの索引をスキャンする方が多数の索引パーティションをスキャンするよりも速く行えます。
パーティション列以外の列の一意索引はグローバルにする必要があります。これは、キーにパーティション化キーが含まれていない一意ローカル非同一キー索引はサポートされていないためです。制御されたデータ・ロード処理や一意制約の施行によるパフォーマンス・コストのために、データ・ウェアハウスでは必ずしも一意キーが施行されるとはかぎりません。グローバル索引は、数十億の行を含む表では非常に大きくなることがあります。
次の例では、グローバル一意索引がsales
表に作成されます。
CREATE UNIQUE INDEX sales_unique_ix ON sales(cust_id, prod_id, promo_id, channel_id, time_id) PARALLEL NOLOGGING;
この索引からメリットを得る問合せはほとんどありません。データ・ロード・ウィンドウが非常に限られているシステムでは、この索引の作成や管理を行わないことを検討する必要があります。