Oracle Spatial の DBTUNE 格納パラメータ
DBTUNE テーブルには、Oracle Spatial に特有の格納パラメータがいくつか含まれています。ここでは、そのようなパラメータについて説明します。
Oracle Spatial フィーチャクラスの作成
SDO_GEOMETRY 格納タイプを使用するフィーチャクラスを作成するには、GEOMETRY_STORAGE パラメータが SDO_GEOMETRY に設定されたコンフィグレーション キーワードを指定します。次のセクションで例を示します。詳細については、「ArcSDE が Oracle Spatial を使用する方法」をご参照ください。
SDO_ORDINATES_VARRAY_STORAGE と SDO_ELEM_INFO_VARRAY_STORAGE という、2 つのパラメータが SDO_GEOMETRY フィーチャの格納に影響します。両方のパラメータとも、可変長配列の格納定義を CREATE TABLE ステートメントに追加します。SDO_ORDINATES_VARRAY_STORAGE は、SDO_GEOMETRY オブジェクトの SDO_ORDINATES_VARRAY 部分の格納を定義します。SDO_ELEM_INFO_VARRAY_STORAGE は、SDO_GEOMETRY オブジェクトの SDO_ELEM_INFO_VARRAY 部分の格納を定義します。
作成する Oracle Spatial フィーチャクラスが CAD または ArcSDE アノテーション データを格納する場合、この情報を格納するために、フィーチャクラスのベース テーブルに列(SE_ANNO_CAD_DATA)が追加されます。この列の格納を定義するために、SE_ANNOCAD_LOB_STORAGE パラメータを設定できます。このパラメータに定義した値は、CREATE TABLE ステートメントに LOB 句として追加され、フィーチャクラスを作成する際に Oracle に送信されます。
Oracle Spatial フィーチャクラスで使用される DBTUNE パラメータ グループの例
このセクションでは、いくつかの一般的な状況で使用できる DBTUNE パラメータ グループを紹介します。(パラメータはコンフィグレーション キーワードによってグループ化されることに注意してください。)これらのサンプルでは、Oracle Spatial フィーチャクラスの格納パラメータに焦点を当てています。
Oracle と Esri は、SDO_GEOMETRY 格納で R ツリー空間インデックスを使用することを推奨しています。次の例のいくつかには、「sdo_indx_dims=2」パラメータが含まれています。このパラメータは、R ツリー空間インデックスを使用してインデックス付けするディメンションの数を指定するものです。
通常は Oracle Spatial を使用しない場合は、既存の SDO_GEOMETRY キーワードを使用したり、独自のシンプルなパラメータ グループを作成したりして、Oracle Spatial フィーチャクラスをデフォルトの設定で作成することができます。DEFAULTS パラメータ グループ以外で指定されていない限り、テーブルとインデックスは、デフォルトの物理的な格納パラメータに基づいて、ユーザのデフォルト表領域に作成されます。空間インデックスは 2 次元の R ツリーになります。
##SDO_GEOMETRY GEOMETRY_STORAGE "SDO_GEOMETRY" SDO_INDEX_SHAPE "sdo_indx_dims=2" UI_TEXT "Oracle Spatial: default settings" END
Oracle Spatial を使用して測地系 SRID 8307(Latitude/Longitude WGS 84)など、特定の空間参照系識別子(SRID)を使用してデータを頻繁にロードする場合は、上記のパラメータ グループを拡張したバージョンを作成します。座標値の上限、下限、許容差は必ずしも指定する必要はありませんが、これらを指定すると、すべてのフィーチャクラスで X、Y ディメンションに同じメタデータを使用できます。
測地系データでは、範囲は 10 進経緯度で指定され、許容値はメートルで指定されます。
##SDO_GEOMETRY_8307 GEOMETRY_STORAGE "SDO_GEOMETRY" SDO_INDEX_SHAPE "sdo_indx_dims=2" SDO_SRID 8307 SDO_DIMNAME_1 "Lon" SDO_LB_1 -180.000000 SDO_UB_1 180.000000 SDO_TOLERANCE_1 0.05 SDO_DIMNAME_2 "Lat" SDO_LB_2 -90.000000 SDO_UB_2 90.000000 SDO_TOLERANCE_2 0.05 UI_TEXT "Oracle Spatial: WGS84" END
R ツリー空間インデックスを持つフィーチャクラスを ORSPBIZ という名前の表領域に読み込むときは、次の例を使用できます。R ツリー空間インデックスが、ORSPIDX という名前の表領域に作成されます。メタデータの値は、データを読み込む ArcSDE クライアントによって決定されます。
##SDO_GEOMETRY_ORSPBIZ GEOMETRY_STORAGE "SDO_GEOMETRY" B_STORAGE "TABLESPACE ORSPBIZ" SDO_INDEX_SHAPE "tablespace=ORSPIDX sdo_indx_dims=2" UI_TEXT "Tablespace ORSPBIZ / ORSPIDX" END
カスタム パラメータ グループを作成する際には、ジオメトリック ネットワーク、テレイン、トポロジなど、他のジオデータベース構造をサポートするパラメータの追加が必要になることがあります。DEFAULTS パラメータ グループのパラメータを設定することで、これらの要件を満たすこともできます。
たとえば、DEFAULTS キーワードの GEOMETRY_STORAGE パラメータが SDO_GEOMETRY に設定されている場合は、トポロジ、ネットワーク、またはテレインを作成する際にそれらのデフォルトのコンポジット キーワードが使用されます。デフォルトのコンポジット キーワードは GEOMETRY_STORAGE を指定しないので、DEFAULTS の GEOMETRY_STORAGE、つまりこの場合は SDO_GEOMETRY が使用されます。
一方、DEFAULTS キーワードの GEOMETRY_STORAGE パラメータの設定が SDO_GEOMETRY 以外になっているときに、SDO_GEOMETRY 格納を使用するテレインを作成するような場合は、テレインを SDO_GEOMETRY 格納で格納するように設計した新しいテレイン キーワードのセットを作成する必要があります。次に、例を示します。
##TERRAIN_SDO UI_TERRAIN_TEXT "The terrain default configuration" GEOMETRY_STORAGE "SDO_GEOMETRY" B_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc" B_INDEX_ROWID "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_SHAPE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_USER "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" END ##TERRAIN_SDO::EMBEDDED GEOMETRY_STORAGE "SDO_GEOMETRY" B_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc" B_INDEX_ROWID "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_SHAPE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_USER "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" END
詳細については、「コンポジット キーワードとジオメトリ格納」をご参照ください。
新しいフィーチャクラスの Oracle Spatial メタデータの作成
Oracle Spatial のデータベース ビュー USER_SDO_GEOM_METADATA には、既存のテーブル内にある SDO_GEOMETRY 列についてのメタデータが含まれています。ユーザごとに独自の USER_SDO_GEOM_METADATA ビューがあります。インデックスを作成したり、クエリを発行したりするには、テーブルの所有者が USER_SDO_GEOM_METADATA に各 SDO_GEOMETRY 列のメタデータを登録する必要があります。ArcGIS クライアント アプリケーションでフィーチャクラスを作成するとき、新しい SDO_GEOMETRY フィーチャクラスのメタデータを指定する次のパラメータを含むコンフィグレーション キーワードを選択します。
SDO_DIMNAME_<n> SDO_LB_<n> SDO_UB_<n> SDO_TOLERANCE_<n> SDO_SRID
最初の 4 つのパラメータにある <n> は、パラメータの設定を適用するディメンションを示しています。Oracle Spatial では、X と Y、X と Y と Z、X と Y と M(メジャー)、または X と Y と Z と M のフィーチャ ジオメトリを使用できます。そのため、次のようにパラメータ名の <n> を数値(1、2、3、4)に置き換えます。
1 | 2 | 3 | 4 |
---|---|---|---|
x | y | ||
x | y | z | |
x | y | m | |
x | y | z | m |
これらの格納パラメータを指定しない場合は、フィーチャクラスを作成する ArcGIS クライアント アプリケーションによって、各次元の上限と下限(範囲)および許容値が計算されます。
前述した組み合わせの他に、Oracle Spatial では X、Y、M、Z のフィーチャ ジオメトリも使用できます。ただし、ジオデータベース内では、これらの組み合わせを SDO_GEOMETRY フィーチャクラスとして使用しないでください。
フィーチャクラスの作成時に指定したコンフィグレーション キーワードに、有効な座標参照系に設定された SDO_SRID パラメータ セットが含まれている場合、その SDO_SRID 値が使用され、USER_SDO_GEOM_METADATA ビューに書き込まれます。このことは、クライアントによって別の座標参照系が提供されている場合でも当てはまります。
空間インデックスの作成
DBTUNE の SDO_INDEX_SHAPE パラメータは、Oracle Spatial での空間インデックスの作成方法を定義します。ArcSDE では、Oracle に CREATE INDEX ステートメントを発行する前に、このパラメータの内容(コンフィグレーション文字列)をステートメントに追加します。コンフィグレーション文字列は、次に示すように、SQL ステートメントの PARAMETERS キーワードの後に挿入されます。例を示します。
CREATE INDEX MY_SP_INDEX ON MY_SP_TABLE(SHAPE)
INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ( <configuration string is inserted here> );
コンフィグレーション文字列は、<パラメータ> = <値> エレメントのリストからなる文字列を引用符で囲んだものです。コンフィグレーション文字列には、多くのパラメータを指定することができます。Oracle Spatial のインデックス パラメータとその相互作用については、『Oracle Spatial ユーザーズガイドおよびリファレンス』の該当するセクションをご参照ください。
空間インデックスのコンフィグレーション文字列と(B_STORAGE パラメータで指定される)ビジネス テーブルのコンフィグレーション文字列では、物理的な格納パラメータは異なります。また、これらのパラメータを SQL ステートメントに指定する方法が異なります。Oracle の SQL ステートメントの形式が違うため、コンフィグレーション文字列の形式も異なります。また、テーブルの作成に使用できるすべての物理的な格納パラメータを、空間インデックスの作成に使用できるわけではありません。
B_STORAGE "TABLESPACE ORSPBIZ PCTFREE 10 INITRANS 4 STORAGE(INITIAL 512000)" SDO_INDEX_SHAPE "tablespace=ORSPIDX initial=512000"
SDO_GEORASTER 格納を使用するラスタ データセットまたはカタログの作成
Oracle Spatial には、SDO_GEORASTER というラスタ格納タイプがあります。ジオデータベースで SDO_GEORASTER 格納に影響するパラメータが 3 つあります。
- RASTER_STORAGE: これを設定すると、SDO_GEORASTER 格納タイプを使用してラスタを作成するように指定できます。
- RDT_STORAGE: SDO_GEORASTER ブロック テーブルの格納情報である SDE_RDT_<N> を指定します。N は、ラスタ列の rastercolumn_id 値です。
- RDT_INDEX_COMPOSITE: SDO_GEORASTER ブロック テーブルで作成された複合インデックスの格納情報である SDE_RDT_<N>_PK を指定します。N はラスタ列の rastercolumn_id 値です。
SDO_GEORASTER タイプの使用の詳細については、「ArcSDE および Oracle Spatial ラスタ タイプ」をご参照ください。