表のパーティションのサブセットのローカルおよびグローバル索引を作成して、索引作成の柔軟性を向上できます。この機能は、デフォルトの表索引付けプロパティを使用してサポートされます。表が作成または変更される場合、デフォルト索引付けプロパティを表またはそのパーティションに指定できます。表索引付けプロパティは、部分索引にのみ考慮されます。
索引が表にPARTIAL
として作成される場合:
ローカル索引: 索引付けが表パーティションに有効な場合に使用でき、無効な場合に使用できない索引パーティションが作成されます。索引または索引パーティション・レベルでUSABLE
/UNUSABLE
を指定して、この動作を上書きできます。
グローバル索引: 索引付けが有効なパーティションのみを含み、その他は除外します。
この機能は、一意の索引または一意の制約の施行に使用される索引にサポートされません。FULL
およびPARTIAL
の両方が指定されない場合、FULL
がデフォルトです。
デフォルトでは、索引がFULL
索引として作成され、表索引付けプロパティから索引を分離します。
INDEXING
句は、パーティションおよびサブパーティション・レベルで指定することもできます。
次のSQL DDLは、次の項目で表を作成します。
パーティションORD_P1
およびORD_P3
がすべての部分グローバル索引に含まれます
上の2つの表パーティションに対応するローカル索引パーティション(PARTIAL
で作成された索引用)が作成され、デフォルトで使用できます。
他のパーティションはすべての部分グローバル索引から除外され、ローカル索引で使用不可で作成されます(PARTIAL
で作成された索引用)。
CREATE TABLE orders ( order_id NUMBER(12), order_date DATE CONSTRAINT order_date_nn NOT NULL, order_mode VARCHAR2(8), customer_id NUMBER(6) CONSTRAINT order_customer_id_nn NOT NULL, order_status NUMBER(2), order_total NUMBER(8,2), sales_rep_id NUMBER(6), promotion_id NUMBER(6), CONSTRAINT order_mode_lov CHECK (order_mode in ('direct','online')), CONSTRAINT order_total_min CHECK (order_total >= 0)) INDEXING OFF PARTITION BY RANGE (ORDER_DATE) (PARTITION ord_p1 VALUES LESS THAN (TO_DATE('01-MAR-1999','DD-MON-YYYY')) INDEXING ON, PARTITION ord_p2 VALUES LESS THAN (TO_DATE('01-JUL-1999','DD-MON-YYYY')) INDEXING OFF, PARTITION ord_p3 VALUES LESS THAN (TO_DATE('01-OCT-1999','DD-MON-YYYY')) INDEXING ON, PARTITION ord_p4 VALUES LESS THAN (TO_DATE('01-MAR-2000','DD-MON-YYYY')), PARTITION ord_p5 VALUES LESS THAN (TO_DATE('01-MAR-2010','DD-MON-YYYY')));
INDEXING
PARTIAL
句を指定する前のSQL例の表索引付けプロパティに従って、ローカルまたはグローバル部分索引を作成できます。
CREATE INDEX ORDERS_ORDER_TOTAL_GIDX ON ORDERS (ORDER_TOTAL) GLOBAL INDEXING PARTIAL;
ORDERS_ORDER_TOTAL_GIDX
索引が作成され、INDEXING
ON
を指定したパーティションのみ索引付けされ、残りのパーティションは除外されます。
ビューの更新には、次の内容が含まれます。
表索引付けプロパティ - 列INDEXING
が*_PART_TABLES
、*_TAB_PARTITIONS
および*_TAB_SUBPARTITIONS
ビューに追加されます。
この列は、索引付けの有効または無効を指定する2つの値ON
およびOFF
のいずれかを含みます。
索引レベル・プロパティとしての部分グローバル索引 - 新しい列INDEXING
がUSER_INDEXES
ビューに追加されます。この列をFULL
またはPARTIAL
に設定できます。
部分グローバル索引の最適化 - グローバル索引(パーティション)がDROP
/TRUNCATE
PARTITION
またはMODIFY
PARTITION
INDEXING
OFF
の実行中に遅延した索引メンテナンスのために古いエントリを含む場合、列ORPHANED_ENTRIES
がディクショナリ・ビューUSER_INDEXES
およびUSER_IND_PARTITIONS
に追加されて表示されます。列には、次の3つの値のいずれかを指定できます。
YES
=> 索引(パーティション)は親がないエントリを含みます
NO
=> 索引(パーティション)は親がないエントリを含みません
関連項目:
データベース・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。