ArcSDE 地理数据库的配置关键字
在 ArcGIS Server 企业级下获得许可的 ArcSDE 地理数据库中,有许多配置关键字选项。对于每个数据库管理系统 (DBMS) 来说,在地理数据库的 DBTUNE 表中默认创建了一组特定的配置关键字。此外,ArcSDE 管理员可添加自定义关键字。
什么是 ArcSDE 地理数据库中的配置关键字?
配置关键字用于将参数和参数值分组到同一标题(关键字)下。参数和参数值为地理数据库中的数据集指定存储选项。配置关键字及其相关的参数和参数值保存在地理数据库的 DBTUNE 系统表中。在 DBTUNE 表中,参数值为配置字符串。下面是 SQL Server 数据库中 DBTUNE 表的一部分,其中显示了一些 TOPOLOGY_DEFAULTS 参数及相应的值。
如何使用配置关键字?
通过将参数和值分组,配置关键字使用户可以指定一个影响某一特定数据集的多个存储选项的关键字。当在地理数据库中创建数据集时,您会选择要使用的配置关键字。如果不指定其他关键字,数据将使用 DEFAULTS 关键字。
ArcSDE 管理员可以更改参数值,以改变要素类或栅格数据集中不同部分的存储方式。例如,对于 ArcSDE for DB2,DEFAULTS 配置关键字下的业务表和增量表参数值可以指定将它们存储到不同的表空间中。下面的示例展示了 dbtune.sde 文件中所显示的 DEFAULTS 配置关键字参数列表的一部分。此示例中,业务表存储在表空间 FEATS 中,而增量表存储在表空间 VERSIONS 中。
##DEFAULTS B_STORAGE "IN FEATS INDEX IN FEATSIDX LONG IN FEATSLONG" A_STORAGE "IN VERSIONS INDEX IN VERSIONSIDX LONG IN VERSIONSL" D_STORAGE "IN VERSIONS INDEX IN VERSIONSIDX LONG IN VERSIONSL"
ArcSDE 管理员还可以创建自定义配置关键字。ArcSDE 管理员负责确保 DBTUNE 表中包含必要的配置关键字,并且这些关键字可在 ArcGIS Desktop 中使用。ArcSDE 管理员可以告知用户是否所有自定义配置关键字都可用,如果可用,用户应在何时使用这些关键字。
系统使用的所有配置关键字并不都显示在 ArcGIS Desktop 界面中供用户使用。对于某些配置关键字 - 例如,用于指定 ArcSDE 知识库表存储位置的 DATA_DICTIONARY 关键字 - 用户始终都没有必要在 ArcGIS Desktop 界面中选择它们。
用户应使用什么配置关键字?
大多数情况下,DEFAULTS 关键字即可满足需求。ArcSDE 管理员应当对 DEFAULTS 配置关键字的参数值进行所有必要的更改,以使其反映最常用的配置。
某些特殊情况下,用户在创建或导入数据时需要选择 DEFAULTS 之外的其他配置关键字。下面各部分给出了一些推荐的情形。
几何存储配置关键字
所有地理数据库都存储几何(地理数据库中的 Geo 就是由此得来的)。用于 ArcSDE 地理数据库的各种 DBMS 产品都具有特定的几何存储机制。DB2 DBMS 使用 Spatial Extender 存储几何。Informix DBMS 使用 Spatial DataBlade 存储几何。Oracle、SQL Server 和 PostgreSQL DBMS 允许用户从不同的几何存储选项中进行选择。
对于 SQL Server 数据库,可以使用 ArcSDE 压缩二进制(默认)存储方法、Open Geospatial Consortium, Inc. (OGC) 熟知二进制 (WKB) 存储方法,或者 Microsoft 的几何或地理空间类型。对于 Oracle 数据库,可使用 ArcSDE 压缩二进制、OGC WKB、ST_Geometry 或 Oracle Spatial。对于 PostgreSQL,可使用 ST_Geometry 或 PostGIS 几何类型。
与以上各种存储类型相关的配置关键字如下所述:
配置关键字 |
几何存储 |
---|---|
WKB_GEOMETRY |
OGC 熟知二进制类型 |
SDELOB |
存储为二进制大对象 (BLOB) 的 ArcSDE 压缩二进制 |
SDEBINARY |
ArcSDE 压缩二进制 |
ST_GEOMETRY |
Oracle 或 PostgreSQL 的空间类型 |
SDO_GEOMETRY |
Oracle Spatial(包括 GeoRaster) |
PG_GEOMETRY |
PostGIS 几何类型 |
GEOMETRY |
Microsoft 几何类型 |
GEOGRAPHY |
Microsoft 地理类型 |
ArcSDE 管理员将 DEFAULTS 几何存储类型设置为用于大部分数据集的类型。如果要使用的存储类型不是在 DEFAULTS 关键字下设置的存储类型,可能要指定其他几何存储配置关键字,从而在下列情况下为数据使用其他几何存储类型:
- 正在使用 SQL Server 或 Oracle;只存储不参与拓扑、网络或关系类的简单要素,例如,点、线和多边形;并且不需要进行 ArcSDE 压缩。
对于符合此描述的要素类,用户可以指定 WKB_GEOMETRY 配置关键字,以便用 OGC WKB 格式存储数据。
- 正在使用 Oracle 数据库;要使用 LOB 存储;数据加上存储定位器的总体大小小于 4,000 字节;并且指定了 Oracle ENABLE STORAGE IN ROW 从句。
如果数据和数据库设置满足这些条件,用户可能需要指定 SDELOB 配置关键字。请注意,如果总大小超过 4,000 字节并且/或者指定了 DISABLE STORAGE IN ROW 子句,则可使用 SDELOB,但是数据的查询性能会受到负面影响。
- 正在使用 Oracle;想要使用结构化查询语言 (SQL) 访问要素类的属性;并且只存储不参与拓扑、网络或关系类的简单要素,例如点、线和多边形。
对于符合此描述的要素类,用户可以指定 ST_GEOMETRY 配置关键字,以便用 Oracle 的 SQL ST_Geometry 类型存储数据。
- 启用了 Oracle Spatial 或 Oracle Locator,但只想以 SDO_GEOMETRY 格式存储部分要素类。
此情况下,在创建满足这些条件的要素类或栅格数据集时,用户可以指定 SDO_GEOMETRY 配置参数。
- 已经安装了 PostGIS,但是只想将部分要素类以 PostGIS 几何存储方式存储。
此情况下,在创建要以 PostGIS 几何类型存储的要素类时,用户可以指定 PG_GEOMETRY 配置关键字。
- 正在使用 SQL Server,并且要以 SQL 空间类型和投影坐标系存储数据。
要创建满足这些要求的要素类,用户可以在创建要素类时指定 GEOMETRY 配置关键字。
- 正在使用 SQL Server,并且要以使用经纬度坐标的 SQL 空间类型存储数据。
在此情况下,用户在创建要素类时可以指定 GEOGRAPHY 配置关键字。
- 正在创建地理数据库原型,并且想要为特定数据集测试每种存储类型的相对性能。
在设计地理数据库时,用户可能想要尝试不同的存储类型,以确定哪些类型适合特定数据集的需求。在该情况下,用户可以使用不同的几何存储配置关键字存储同一数据集(使用不同的名称),然后系统性地测试各个数据集的性能。
ArcSDE 管理员可能已经创建了其他自定义配置关键字,以供用户使用。在此情况下,ArcSDE 管理员应当为用户提供该信息。
栅格数据存储配置关键字
所有地理数据库都能存储空间参考的栅格数据。
可在各 DBMS 中使用不同的存储类型来存储栅格数据。请参阅 ArcSDE 地理数据库中的栅格数据存储类型以获得这些数据类型的列表。
ArcSDE 管理员将 DEFAULTS 栅格数据存储类型设置为用于大部分数据集的类型。如果要使用的存储类型不是在 DEFAULTS 关键字下设置的存储类型,并且启用了 Oracle Spatial 或 Oracle Locator,同时还要将部分栅格数据集存储到 SDO_GEORASTER 中以使用 SQL 访问该栅格数据,则可以在创建满足这些条件的栅格数据集时指定 SDO_GEOMETRY 配置关键字。
ArcSDE 管理员可能也创建了自定义关键字以指定其他栅格数据类型。请联系 ArcSDE 管理员以确定站点是否属于此情况。
网络配置关键字
在创建网络时,要使用网络配置关键字。
网络配置关键字是复合配置关键字 - 将三个单独的网络关键字配合使用可以将同一网络类中的表存储到不同的位置。默认的网络关键字如下:
NETWORK_DEFAULTS NETWORK_DEFAULTS::DESC NETWORK_DEFAULTS::NETWORK
请参阅配置关键字的类型以了解复合关键字的信息。
如果没有为网络指定配置关键字,将使用 NETWORK_DEFAULTS 关键字定义网络的存储方式。
如果要创建一个网络类并且不使用默认值存储其组件,用户可创建自己的网络关键字集。例如,如果要为公交线路创建预计会比河流和铁路网络大得多的网络,ArcSDE 管理员可以创建一组网络配置关键字以将公交线路网络存储到地理数据库中的其他位置。ArcSDE 管理员可以创建具有以下名称的关键字:
NETWORK_BUS NETWORK_BUS::DESC NETWORK_BUS::NETWORK
管理员可以为其中的每个关键字指定不同于 NETWORK_DEFAULTS 关键字的配置字符串值。
如果 NETWORK_DEFAULTS 具有以下参数:
关键字 |
参数名 |
配置字符串 |
---|---|---|
NETWORK_DEFAULTS |
A_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE CITY |
NETWORK_DEFAULTS |
D_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE CITY |
NETWORK_BUS 作为 NETWORK_DEFAULTS 的变形,可以具有以下参数:
关键字 |
参数名 |
配置字符串 |
---|---|---|
NETWORK_BUS |
A_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE BUS |
NETWORK_BUS |
D_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE BUS |
如果 NETWORK_DEFAULTS::DESC 具有以下参数设置:
关键字 |
参数名 |
配置字符串 |
---|---|---|
NETWORK_DEFAULTS::DESC |
A_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE CITY |
NETWORK_DEFAULTS::DESC |
D_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE CITY |
NETWORK_BUS::DESC 作为 NETWORK_DEFAULTS::DESC 的变形,可以具有以下设置:
关键字 |
参数名 |
配置字符串 |
---|---|---|
NETWORK_BUS::DEFAULTS |
A_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE BUS |
NETWORK_BUS::DEFAULTS |
D_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE BUS |
最后,如果 NETWORK_DEFAULTS::NETWORK 具有以下参数值:
关键字 |
参数名 |
配置字符串 |
---|---|---|
NETWORK_DEFAULTS::NETWORK |
A_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE CITY |
NETWORK_DEFAULTS::NETWORK |
D_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE CITY |
NETWORK_BUS::NETWORK 作为 NETWORK_DEFAULTS::NETWORK 的变形,可以具有以下参数值:
关键字 |
参数名 |
配置字符串 |
---|---|---|
NETWORK_BUS::NETWORK |
A_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE BUS |
NETWORK_BUS::NETWORK |
D_STORAGE |
PCTFREE 0 INITRANS 4 TABLESPACE BUS |
拓扑配置关键字
在创建拓扑时,使用拓扑配置关键字控制拓扑表的存储。
拓扑配置关键字是复合关键字。默认的 TOPOLOGY 复合关键字有:
TOPOLOGY_DEFAULTS TOPOLOGY_DEFAULTS::DIRTYAREAS
TOPOLOGY_DEFAULTS::DIRTYAREAS 用于指定 DIRTYAREAS 拓扑表的存储方式。
如果在创建拓扑时不选择其他拓扑关键字,将使用 TOPOLOGY_DEFAULTS 和 TOPOLOGY_DEFAULTS::DIRTYAREAS 关键字指定拓扑表的存储方式。
如果不想使用默认拓扑关键字,ArcSDE 管理员可以创建新拓扑关键字,用来指定与默认关键字不同的其他存储参数。
以下示例描述了此过程:
- 用户正在使用 ArcSDE for Oracle。
- 大部分数据使用 ArcSDE 压缩二进制 (SDELOB) 格式存储在表空间 MAIN 中。所有在此数据上创建的拓扑也存储在表空间 MAIN 中。TOPOLOGY_DEFAULTS 的部分参数值如下:
TOPOLOGY_DEFAULTS 示例关键字
参数名
配置字符串
TOPOLOGY_DEFAULTS
B_INDEX_ROWID
PCTFREE 0 INITRANS 4 TABLESPACE MAIN STORAGE (INITIAL 409600) NOLOGGING
TOPOLOGY_DEFAULTS
B_INDEX_SHAPE
PCTFREE 0 INITRANS 4 TABLESPACE MAIN STORAGE (INITIAL 409600) NOLOGGING
TOPOLOGY_DEFAULTS
B_INDEX_USER
PCTFREE 0 INITRANS 4 TABLESPACE MAIN STORAGE (INITIAL 409600) NOLOGGING
TOPOLOGY_DEFAULTS
B_STORAGE
PCTFREE 0 INITRANS 4 TABLESPACE MAIN STORAGE (INITIAL 409600)
- 部分数据以 Oracle Spatial 格式 (SDO_GEOMETRY) 存储在表空间 SDO 中。
- 建议所有参与同一拓扑的数据均使用相同的几何存储类型。
- 因为所有的 SDO_GEOMETRY 数据都存储在表空间 SDO 中,因而用户希望与 SDO 数据一起使用的拓扑表也存储到 SDO 表空间中。
- 用户可请求 ArcSDE 管理员创建自定义拓扑关键字以指定此存储方式。ArcSDE 管理员可创建和配置以下关键字:
TOPOLOGY_SDO TOPOLOGY_SDO::DIRTYAREAS
TOPOLOGY_SDO 的部分参数值如下:
关键字
参数名
配置字符串
TOPOLOGY_SDO
B_INDEX_ROWID
PCTFREE 0 INITRANS 4 TABLESPACE SDO STORAGE (INITIAL 409600) NOLOGGING
TOPOLOGY_SDO
B_INDEX_SHAPE
PCTFREE 0 INITRANS 4 TABLESPACE SDO STORAGE (INITIAL 409600) NOLOGGING
TOPOLOGY_SDO
B_INDEX_USER
PCTFREE 0 INITRANS 4 TABLESPACE SDO STORAGE (INITIAL 409600) NOLOGGING
TOPOLOGY_SDO
B_STORAGE
PCTFREE 0 INITRANS 4 TABLESPACE SDO STORAGE (INITIAL 409600)
- 为 SDO_GEOMETRY 数据创建拓扑时,请指定 TOPOLOGY_SDO 配置关键字,从而将所有拓扑表存储到 SDO 表空间中。
地形配置关键字
在创建地形时,使用地形配置关键字控制地形表的存储。
地形配置关键字是复合关键字。默认 TERRAIN 复合关键字有:
TERRAIN_DEFAULTS TERRAIN_DEFAULTS::EMBEDDED
TERRAIN_DEFAULTS::EMBEDDED 控制 DTM_<ID>_DISCONNECT_ <OID> 表的默认存储方式。TERRAIN_DEFAULTS 用来控制组成地形数据集的其他所有表的存储。
与网络和拓扑关键字一样,ArcSDE 管理员也可以创建用来指定其他存储信息的自定义关键字。