インライン空間列の作成
インライン空間列 は、 LOB データ・タイプ、または LOB データ・タイプに基づく特殊タイプを使用して定義されます。 座標システムを選択し、データに使用する空間参照システムを決定した後、既存の表にインライン空間列を作成するか、空間データを新しい表にインポートすることができます。
始める前に
インライン空間列を作成する前に、ユーザーのユーザー ID には、 Db2 SQL CREATE TABLE ステートメントまたは ALTER TABLE ステートメントに必要な許可を保持しておく必要があります。
このタスクについて
インライン LOB 列を使用して特定のタイプの形状を保管することにより、データ・ロード、インデックス作成、および照会のパフォーマンスを向上させることができます。 これらの形状タイプは、 ST_LineString、 ST_Polygon、 ST_MultiPoint、 ST_MultiLineString 、および ST_MultiPolygonで、これらは BLOB データ・タイプに基づいています。 ただし、インライン LOB 列では、基本表スペースには LOB 列または非 LOB 列よりも多くのストレージが使用されます。
プロシージャー
インラインの空間列を作成するには。
- Db2 サブシステムが空間サポートに対応していない場合は、インライン空間列を作成します。
- LOB_INLINE_LENGTH サブシステム・パラメーターを適切な値に設定します。
- Db2 を再始動します。
- Db2 サブシステムで空間サポートを使用可能にします。
- CREATE TABLE ステートメントを発行して、空間列を持つ新しい表を作成します。 非ポイント列は、インライン空間列として作成されます。 列の長さは、 LOB_INLINE_LENGTH サブシステム・パラメーターの値から継承されます。
- Db2 サブシステムで空間サポートが使用可能になっている場合は、 CREATE TABLE ステートメントを発行し、 INLINE LENGTH 文節を指定して列のインライン長を指定します。
- 非ポイント形状列を持つ既存の表の場合は、 ALTER TABLE ALTER column-alternation ステートメントを発行して、列をインライン空間列に変更します。ヒント: 既存の列をインライン空間列に変更した後、REORG TABLESPACE ユーティリティを実行します。
- 形状列を持たない既存の表の場合は、 ALTER TABLE ADD column-definition ステートメントを発行して、インライン空間列を追加します。
例
以下の例では、 LOB_INLINE_LENGTH サブシステム・パラメーターを 1000 バイトに設定してから、 Db2 サブシステムで空間サポートを使用可能にすることを想定しています。 インライン空間列を持つ新規表を作成するには、次のステートメントを発行します。
CREATE TABLE SYSADM.REAL_ESTATE(ID INTEGER NOT NULL,
PROPERTY DB2GSE.ST_MULTIPOLYGON);PROPERTY 列は、長さ 1000 バイトのインライン空間列として定義されます。
以下の例のように、 INLINE LENGTH 文節を指定した CREATE TABLE ステートメントを発行することにより、 LOB_INLINE_LENGTH サブシステム・パラメーターの値をオーバーライドすることができます。
CREATE TABLE SYSADM.REAL_ESTATE(ID INTEGER NOT NULL,
PROPERTY DB2GSE.ST_MULTIPOLYGON INLINE LENGTH 500 );PROPERTY 列の新しい長さは 500 バイトです。
次の例では、ある列を、非ポイント形状列を持つ既存の表のインライン空間列に変更すると想定します。 以下の ALTER TABLE ALTER column-alternation ステートメントを発行し、 REORG TABLESPACE ユーティリティーを実行した後、 PROPERTY 列の長さは 700 バイトになります。
ALTER TABLE SYSADM.REAL_ESTATE ALTER PROPERTY SET INLINE LENGTH 700;最後に、以下の CREATE TABLE ステートメントを発行して、表を作成したと想定します。
CREATE TABLE SYSADM.REAL_ESTATE1(ID INTEGER NOT NULL, PRICE DECIMAL(9,2));ここで、形状列を持たない、この既存の表にインライン空間列を追加します。 以下の ALTER TABLE ADD column-definition ステートメントを発行します。
ALTER TABLE SYSADM.REAL_ESTATE1 ADD COLUMN PROPERTY DB2GSE.ST_MULTIPOLYGON;このステートメントを発行することにより、 PROPERTY 列は LOB_INLINE_LENGTH サブシステム・パラメーターからインライン LOB 長を継承します。このパラメーターは 1000 バイトに設定されます。 LOB_INLINE_LENGTH サブシステム・パラメーターをオーバーライドしたい場合は、次のステートメントを発行します。
ALTER TABLE SYSADM.REAL_ESTATE1 ADD COLUMN PROPERTY1
DB2GSE.ST_MULTIPOLYGON INLINE LENGTH 700;PROPERTY 列の長さは、 700 バイトです。