パーティション表でのラージ・オブジェクトの動作
パーティション表は、データ・パーティションまたは範囲と呼ばれる複数のストレージ・オブジェクトに表データを分割するというデータ編成スキームを使用します。分割は、表の 1 つ以上の表パーティション・キー列の値に従って行われます。 指定された表のデータは、CREATE TABLE ステートメントの PARTITION BY 節で提供された仕様に基づいて、複数のストレージ・オブジェクトにパーティション化されます。 このストレージ・オブジェクトは異なる表スペース、同じ表スペース内、またはその両方に配置することができます。
パーティション表のラージ・オブジェクトは、デフォルトでは、対応するデータ・オブジェクトと同じ表スペースに保管されます。 このことは、表スペースを 1 つだけ使用するパーティション表にも、複数の表スペースを使用するパーティション表にも当てはまります。 パーティション表のデータが複数の表スペースに保管される場合は、ラージ・オブジェクト・データも複数の表スペースに保管されます。
このデフォルト動作をオーバーライドするには、CREATE TABLE ステートメントの LONG IN 節を使用します。 表の LONG データが保管される表スペースのリストを指定できます。 デフォルト動作をオーバーライドするようにする場合、LONG IN 節で指定する表スペースは LARGE 表スペースでなければなりません。 1 つ以上のデータ・パーティションの LONG データが別個の表スペースに保管されるように指定する場合は、その表のすべてのデータ・パーティションについてそうする必要があります。 つまり、一部のデータ・パーティションについてはリモート側で LONG データを保管し、他のデータ・パーティションについてはローカル側で LONG データを保管するということはできません。 デフォルト動作を使用しても、LONG IN 節を使用してデフォルト動作をオーバーライドしても、各データ・パーティションに対応した LONG オブジェクトが作成されます。 各データ・パーティションに対応する LONG データ・オブジェクトを保管するために使用されるすべての表スペースで、ページ・サイズ、エクステント・サイズ、ストレージ・メカニズム (DMS または AMS)、タイプ (REGULAR または LARGE) が、同じでなければなりません。 リモート LARGE 表スペースは LARGE タイプである必要があります。また、SMS は使用できません。
CREATE TABLE document(id INT, contents CLOB)
PARTITION BY RANGE(id)
(STARTING FROM 1 ENDING AT 100 IN tbsp1,
STARTING FROM 101 ENDING AT 200 IN tbsp2,
STARTING FROM 201 ENDING AT 300 IN tbsp3,
STARTING FROM 301 ENDING AT 400 IN tbsp4);
CREATE TABLE document(id INT, contents CLOB)
PARTITION BY RANGE(id)
(STARTING FROM 1 ENDING AT 100 IN tbsp1 LONG IN large1,
STARTING FROM 101 ENDING AT 200 IN tbsp2 LONG IN large1,
STARTING FROM 201 ENDING AT 300 IN tbsp3 LONG IN large2,
STARTING FROM 301 ENDING AT 400 IN tbsp4 LONG IN large2);