次の例では、ハッシュ・パーティション表を作成します。パーティション化列はid
で、4つのパーティションが作成されてシステム生成の名前が割り当てられます。4つのパーティションは、名前の付けられた4つの表領域(gear1
、gear2
、gear3
、gear4
)に配置されます。
CREATE TABLE scubagear (id NUMBER, name VARCHAR2 (60)) PARTITION BY HASH (id) PARTITIONS 4 STORE IN (gear1, gear2, gear3, gear4);
次の例では、ハッシュ・パーティション表を作成する場合のパーティション数が指定されていますが、システム生成の名前が割り当てられ、表のデフォルトの表領域に格納されます。
CREATE TABLE departments_hash (department_id NUMBER(4) NOT NULL, department_name VARCHAR2(30)) PARTITION BY HASH(department_id) PARTITIONS 16;
次の例では、個々のパーティション名、およびそれらのパーティションを配置する表領域が指定されています。各ハッシュ・パーティション(セグメント)の初期エクステント・サイズも表レベルで明示的に指定されており、すべてのパーティションでこの属性が継承されます。
CREATE TABLE departments_hash (department_id NUMBER(4) NOT NULL, department_name VARCHAR2(30)) STORAGE (INITIAL 10K) PARTITION BY HASH(department_id) (PARTITION p1 TABLESPACE ts1, PARTITION p2 TABLESPACE ts2, PARTITION p3 TABLESPACE ts1, PARTITION p4 TABLESPACE ts3);
この表にローカル索引を作成すると、データベースにより、基礎となる表と同一レベル・パーティション化されるように索引が作成されます。また、基礎となる表でメンテナンス操作が実行された場合には、データベースにより自動的に索引がメンテナンスされます。次に、表にローカル索引を作成する例を示します。
CREATE INDEX loc_dept_ix ON departments_hash(department_id) LOCAL;
オプションで、ハッシュ・パーティションおよびローカル索引パーティションが格納される表領域に名前を付けることができますが、そうしない場合、データベースでは対応する基礎となるパーティションの名前が索引パーティション名として使用され、索引パーティションは表パーティションと同じ表領域に格納されます。
詳細は、「キー列に対するパーティション化の指定」を参照してください。