Oracle Spatial DBTUNE 存储参数

DBTUNE 表包含一些 Oracle Spatial 专用的存储参数。这些参数将在下面的章节中介绍。

创建 Oracle Spatial 要素类

要创建使用 SDO_GEOMETRY 存储类型的要素类,请指定一个包含 GEOMETRY_STORAGE 参数设置为 SDO_GEOMETRY 的配置关键字。下一节会提供一些示例。有关详细信息,请参阅 ArcSDE 如何使用 Oracle Spatial?

影响 SDO_GEOMETRY 要素存储的另外两个参数:SDO_ORDINATES_VARRAY_STORAGE 和 SDO_ELEM_INFO_VARRAY_STORAGE。这两个参数都会追加 varray 存储子句到 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 参数为该列定义存储。为此参数定义的值将作为提交到 Oracle 以创建要素类的 CREATE TABLE 语句的 LOB 子句进行添加。

Oracle Spatial 要素类的 DBTUNE 参数组举例

本部分讲述了用于某些常见情形的 DBTUNE 参数组。(请记住,参数的分组所依据的是配置关键字。)这些示例针对的是 Oracle Spatial 要素类的存储参数。

Oracle 和 Esri 建议 SDO_GEOMETRY 存储类型使用 R 树空间索引。在以下某些示例中将会包含 "sdo_indx_dims=2",此参数指定 R 树空间索引所要使用的维数。

如果默认情况下未使用 Oracle Spatial,则可以使用现有的 SDO_GEOMETRY 关键字或创建自己的简单参数组来创建 Oracle Spatial 要素类(几乎全部采用默认设置)。表和索引通常会在用户的默认表空间中使用默认物理存储参数进行创建,除非特意指定,否则将采用 DEFAULTS 参数组。空间索引是二维的 R 树。

##SDO_GEOMETRY
GEOMETRY_STORAGE		"SDO_GEOMETRY"
SDO_INDEX_SHAPE	"sdo_indx_dims=2"
UI_TEXT	"Oracle Spatial: default settings"
END

对于 Oracle Spatial,如果经常使用特定的空间参考标识符 (SRID) - 例如大地 SRID 8307(纬度-经度 WGS84)- 来加载数据,则可以创建之前参数组的扩展版本。一般不必指定上限、下限和容差,除非要使所有要素类的 x 维度和 y 维度具有相同的元数据。

注注:

对于测地数据,范围以十进制度为单位来指定,而容差则以米为单位来指定。

##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

当您设计自己的参数组时,可能需要添加参数以支持其他地理数据库结构,例如几何网络、terrain 或拓扑。也可以通过设置 DEFAULTS 参数组中的参数来满足这些要求。

例如,如果在创建拓扑、网络或 terrain 时,将 DEFAULTS 关键字的 GEOMETRY_STORAGE 参数设置为 SDO_GEOMETRY,则将会使用这些结构类型的默认复合关键字。由于默认复合关键字不指定 GEOMETRY_STORAGE,所以将会使用 DEFAULTS GEOMETRY_STORAGE;此示例中使用 SDO_GEOMETRY。

如果 DEFAULTS GEOMETRY_STORAGE 关键字设置为除 SDO_GEOMETRY 之外的其他值,但是您又想创建使用 SDO_GEOMETRY 存储类型的结构,例如 terrain,这时就需要创建一组新的 terrain 关键字以使用 SDO_GEOMETRY 存储类型专门存储 terrain。以下是相关示例:

##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

前四个参数中的 <n> 表示您想要参数设置应用的维度。Oracle Spatial 允许以 x,y;x,y,z;x,y,m(测量);或 x,y,z,m 组合的要素几何。因此可以按如下方式用这些数字(1、2、3 或 4)之一替换参数名称中的 <n>:

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 创建空间索引的方式。在将 CREATE INDEX 语句提交到 Oracle 之前,ArcSDE 会将此参数的内容(配置字符串)追加到此语句中。配置字符串会插入到 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 参数中指定)。差别之一是由于 Oracle 对这些参数出现在 SQL 语句中的方式的设定不同。Oracle 语句之间的格式互不相同,因此配置字符串的格式也不相同。还有,在用于创建表的物理存储参数中,只有一部分可用于创建空间索引。

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 存储的参数有三个:

有关使用 SDO_GEORASTER 类型的详细信息,请参阅 ArcSDE 和 Oracle Spatial 栅格类型

5/10/2014