FAQ 技術情報:ST_Geometry を持つ Oracle テーブル作成時の格納パラメータの設定

ナレッジ番号:2737 | 登録日:2023/05/29 | 更新日:2023/06/21

【概要】

SQL を使用して ST_Geometry 属性を持つテーブルを作成する際、バイナリの ST_Geometry の POINT 属性の格納パラメータを1つ指定することができます。

以下の手順では、Oracle の CREATE TABLE 文で LOB セグメント名および LOB および格納パラメータの特定のプロパティを設定する方法を示しています。

【手順】

以下の例では SHAPE という名前の ST_Geometry 属性を持つテーブルを作成し、LOB セグメント名と STORAGE 句を定義しています。

SQL> CREATE TABLE streets 
 2    (objectid    NUMBER(38) NOT NULL,
 3     name        VARCHAR2(64) NOT NULL,
 4     laddr       NUMBER(9),
 5     raddr       NUMBER(9),
 6     shape       st_geometry)
 7    LOB (shape.points) 
 8    STORE AS streets_shape_seg
 9     (TABLESPACE user_data ENABLE STORAGE IN ROW CHUNK 8K RETENTION CACHE
10    STORAGE (INITIAL 500M PCTINCREASE 10)
11    INDEX
12     (TABLESPACE lob_idx STORAGE (INITIAL 50M PCTINCREASE 10)))
13    PCTFREE 10 INITRANS 4
14    TABLESPACE user_data STORAGE (INITIAL 1M PCTINCREASE 0);

テーブルが作成されました。

1-6 行:CREATE TABLE 文で属性を定義しています。

7 行:LOB(shape.points)は LOB アイテムが shape.points(shape という名前の属性は ST_Geometry タイプです)であることを示しています。

8 行:STORE AS streets_shape_seg は LOB 属性が行外に格納される場合の LOB セグメントの名前を示しています。

9 行:LOB セグメントが作成される表領域を示しています。ENABLE STORAGE IN ROW はバイナリオブジェクトが 4000 バイトより小さい場合に行内に格納されることを示しています。CHUNK 8K は LOB 操作時のサイズを示しています:デフォルトはセグメントのブロックサイズです。RETENTION は自動 UNDO 管理で LOB の更新期間を示しています。この時間の長さは 初期化パラメータの UNDO_RETENTION に基づきます。CACHE はセグメントブロックを SGA キャッシュに置くかどうかを示しています。

10 行:LOB セグメントの STORAGE 句では初期エクステントが 500M で 10%ずつ増加することを示しています。

11-12 行:INDEX は LOB セグメントのインデックスが作成される表領域を示しています。STORAGE パラメータでは初期エクステントが 50M で 10% ずつ増加する設定の格納句を示しています。

13 行:streets テーブルの物理的な属性、pctfree 10 は今後のデータ更新のためにブロックに空き領域を 10% 確保し、initrans は同じブロックへアクセスする同時実行トランザクションのためのトランザクションスロットの初期設定値を定義していることを示しています。

LOB セグメント名(8行目)はユーザスキーマで一意である必要があります。テーブルまたはインデックスのような2つのセグメントが同じ名前を共有することはできません。

詳細については Oracle のドキュメントを参照してください。

■関連情報

メタデータ

カテゴリ

製品