配置关键字的类型

某些配置关键字默认存在于 ArcSDE 的所有数据库管理系统 (DBMS) 实现中。而有些配置关键字在默认情况下仅针对特定的 DBMS 实现而存在。还有一些则可由 ArcSDE 管理员创建或自定义。

默认存在于所有 DBMS 实现中的关键字

以下将介绍所有 DBMS 实现中默认存在的配置关键字。

DATA_DICTIONARY

DBTUNE 表中的 DATA_DICTIONARY 配置关键字包含用于定义 ArcSDE 地理数据库系统表存储的参数。也就是说,创建地理数据库时会读取这些参数。因此,如果想要修改这些表的存储,必须在执行后安装设置之前更改 dbtune.sde 文件,然后在创建地理数据库时指定此文件。

这对于 DB2 和 Oracle 数据库来说尤其重要,因为如果没有在 DATA_DICTIONARY 关键字下为某些系统表指定特定的表空间,这些表将自动创建在 DB2 上的临时表空间中或者是用户的默认表空间中(即 ArcSDE 管理员的表空间)。

四个 ArcSDE 系统表 - VERSION、STATES、STATE_LINEAGES 和 MVTABLES_MODIFIED - 会加入 ArcSDE 版本化模型以及因对多版本化表进行更改而生成的记录事件。如果您所在的组织要广泛使用多版本化数据库,则会十分频繁地使用这四个系统表及其关联的索引。这种情况下,通过修改与这些对象关联的 DATA_DICTIONARY 参数以将其分成各自的表空间,可以将其数据文件与输入/输出 (I/O) 频率较低的数据文件放置在一起,从而最大程度缓解磁盘 I/O 争用情况。

下表包含了所有 DBMS 实现共有的可能十分活跃的 DATA_DICTIONARY 表的描述。此外,还介绍了在使用元数据搜索时有可能非常活跃的另一个表。知道这些表的作用将有助于您确定存储它们及其关联索引的方法。

描述

STATES

与 Oracle SCN 相似,在版本化编辑期间存储更改编号(状态 ID);每个状态 ID 占一行;在版本化编辑环境中非常活跃,并且可以包含数千至数万行

STATE_LINEAGES

标识用来描述版本化编辑年表的状态 ID 的排序顺序;版本化编辑期间非常活跃,并且可以包含数百万行

VERSIONS

存储对编辑(版本)逻辑组的命名引用;不活跃,但可以包含数百至数千行

MV_TABLES_MODIFIED

标识在每个状态 ID 下编辑的表;在版本化编辑期间很活跃,并且可以包含数万至数十万行

SDE_XML_INDEX_TAGS

定义元数据搜索的 XPath 索引属性;在按标记进行内容搜索期间以及在重新构建全文索引时很活跃,并且可以包含数千至数万行(对于大的元数据门户,可能会更多)

DATA_DICTIONARY 系统表

单独的 DBMS 类型可以包含用于其他表或索引的额外参数。请参阅以下主题,以查找特定于 DBMS 的 DATA_DICTIONARY 信息:

DEFAULTS

顾名思义,在创建表、要素类、栅格数据集以及索引时,默认情况下使用 DEFAULTS 配置关键字下的设置。如果在地理数据库中创建数据时未指定其他关键字,或者指定的关键字缺少某些必要参数,则将使用 DEFAULTS 关键字中的值。在创建地理数据库时,DBTUNE 表具有完全填充的 DEFAULTS 配置关键字。

更改 DEFAULTS 关键字参数组时,应该用可代表最常见的数据存储配置的值来填充它。这样就不必为所定义的每个关键字分别定义所有参数。例如,如果创建一个配置关键字用来在与其余数据分离的存储空间中创建表,则只需要添加用于指定表存储位置的参数。然后,可从 DEFAULTS 关键字参数组选取其余参数,例如,几何存储类型。

使用您所在特定场所最常用的值来填充 DEFAULTS 关键字,这样做还可以让创建数据的用户变得更轻松;如果 DEFAULTS 关键字包含的设置占到用户所需数据的 95%,那么用户只需考虑为其余 5% 选择不同的关键字。

无论何时创建表、索引、要素类或栅格数据集,都可以选择 DEFAULTS 配置关键字。如果在创建或加载数据时未提供关键字,则自动使用 DEFAULTS 关键字参数组。

DEFAULTS 关键字参数组中的初始配置参数因 DBMS 的不同而有所不同。请参阅以下主题,以了解每个 DBMS 的 DEFAULTS 参数组(如果未进行自定义)中的值。

注意注意:

关键字及其参数以其在 dbtune 文件中而不是在 DBTUNE 表中的显示方式表示。(例如,在 DBTUNE 表中,配置关键字前面没有双 # 号。)

LOGFILE_DEFAULTS

DBTUNE 表中的日志文件配置关键字用于控制 ArcSDE 日志文件表的存储。LOGFILE_DEFAULTS 关键字存在于所有 ArcSDE 实现中。

请参阅以下主题,以查看每个数据库管理系统中 LOGFILE_DEFAULTS 关键字的默认参数:

然而,也可以为特定用户创建日志文件关键字,以便该用户在创建用于导致系统创建 ArcSDE 日志文件表的选择集时,使用该用户日志文件关键字的设置。有关详细信息,请参阅自定义配置关键字中的“自定义日志文件关键字”部分。

复合配置关键字

复合关键字是一种独特的关键字类型,通常在用户要将同一网络、地形或拓扑类中的表存储到单独的空间中时使用。例如,如果某个表要比其他表活跃得多或者类中的某个表要比其他表大得多,用户就会想将其存储到单独的空间。

复合配置关键字可细分为以下元素:没有后缀的父元素,以及通过在父元素的配置关键字上添加 ::<元素名称> 后缀而进行区分的复合关键字元素。

可以创建自己的复合关键字,但默认的复合关键字有 NETWORK_DEFAULTS、TOPOLOGY_DEFAULTS 和 TERRAIN_DEFAULTS。

网络复合关键字

NETWORK_DEFAULTS 是默认网络复合关键字的父关键字。默认网络复合关键字的其他元素有 NETWORK_DEFAULTS::DESC 和 NETWORK_DEFAULTS::NETWORK。当指定网络父关键字时,将从所有这三个配置关键字中读取参数和值。

如果要创建自定义的一组网络配置关键字,请将 DEFAULTS 替换为其他词。例如,针对用于高速公路的自定义网络复合关键字,可以创建以下的关键字:

NETWORK_HWY NETWORK_HWY::DESC NETWORK_HWY::NETWORK

与所有自定义关键字一样,需要指定要用于特殊的非默认网络类的存储值。在本例中,当指定 NETWORK_HWY 父关键字来创建网络数据集时,ArcSDE 利用为 NETWORK_HWY、NETWORK_HWY::DESC 和 NETWORK_HWY::NETWORK 关键字设置的值来创建构成网络的表。

网络由多个系统表和要素类组成。根据网络的类型以及是否实际指定了关键字,为复合关键字的每个元素指定的存储参数用来存储不同的表。下表列出了网络复合关键字的元素对几何网络或网络数据集中哪些表的存储方式造成影响:

如果...

网络复合关键字元素

NETWORK_<名称>

NETWORK_<名称>::DESC

NETWORK_<名称>::NETWORK

创建网络数据集时指定网络父关键字

定义系统交汇点要素类、ND_<itemID>_DIRTYAREAS 和 ND_<ItemID>DIRTYOBJECTS 表的存储方式

定义 N_<ID>_DESC 表的存储方式

定义所有其他 N_<ID>_* 表的存储方式

创建网络数据集时未指定网络父关键字

以 DEFAULTS 关键字创建系统交汇点要素类、ND_<itemID>_DIRTYAREAS 和 ND_<ItemID>DIRTYOBJECTS 表。以 NETWORK_DEFAULTS 父关键字参数创建所有其他网络数据集表。

未使用

未使用

创建几何网络时指定网络父关键字

定义孤立交汇点要素类和构建错误表的存储方式

定义 N_<ID>_DESC 表的存储方式

定义所有其他 N_<ID>_* 表的存储方式

创建几何网络时未指定网络父关键字

以 DEFAULTS 关键字创建孤立交汇点要素类和构建错误表。以 NETWORK_DEFAULTS 父关键字参数创建所有其他几何网络表。

未使用

未使用

有关几何网络和网络数据集表的描述,请参阅针对您的 DBMS 的主题:

拓扑复合关键字

拓扑复合关键字用于控制拓扑表的存储方式。ArcSDE 实例的 DBTUNE 表中必须具有用于构建拓扑的有效拓扑关键字。拓扑复合关键字由父元素 TOPOLOGY_DEFAULTS 和用来指示 DIRTYAREAS 拓扑表存储位置的 TOPOLOGY_DEFAULTS::DIRTYAREAS 组成。DIRTYAREAS 表可以变得非常大,并且在版本化地理数据库中非常活跃。因此,如果地理数据库使用拓扑,并且对数据进行大量的版本化编辑,您应该更改 TOPOLOGY_DEFAULTS::DIRTYAREAS 的参数值以在单独的存储位置存储 DIRTYAREAS 表组件;默认情况下,这些表组件的存储设置与拓扑表相同。

请注意,参与同一拓扑的数据集应使用相同的几何存储类型;如果不是这样,则可能会出现一些因数据存储方式稍有变化而引起的拓扑错误。大多数情况下,这些变化非常小,但可能会违反一条或多条拓扑规则。有关拓扑简介,请参阅拓扑基础知识

有关拓扑表的描述,请参阅针对您的 DBMS 的拓扑存储主题:

地形复合关键字

地形复合关键字用于控制针对地形数据集创建的以下各表的存储:

  • DTM_<itemID>_COMPOSITETILES
  • DTM_<itemID>_DIRTYAREA
  • DTM_<itemID>_INSIDETILES
  • DTM_<itemID>_MRFC
  • DTM_<itemID>_PROPS
  • DTM_<itemID>_EMBED_<N>

ItemID 是用于特定地形数据集的 GDB_ITEMS 表中 UUID 字段的值。N 指示特定的 DTM_<itemID>_EMBED 表;可以是表示这些表的任意数值 (0...n)。

默认的地形关键字是 TERRAIN_DEFAULTS(控制以上列出的前四个表的默认存储方式)和 TERRAIN_DEFAULTS::EMBEDDED(控制 DTM_<itemID>_EMBED_<N> 表的存储方式)。

DTM_<itemID>_EMBED_<N> 表存储嵌入的要素类。为此,它们可能要比其他地形表大得多;因此,根据用于存储地理数据库的 DBMS 而定,可能需要修改 TERRAIN_DEFAULTS::EMBEDDED 关键字的存储参数,以在不同位置或不同大小的范围内存储这些表。

许可许可:

只有在安装并激活了“三维分析”扩展模块时,才可创建地形。

有关地形表的描述,请参阅针对您的 DBMS 的地形存储主题:

几何和栅格数据存储关键字

如果只想为一小部分数据使用不同的几何存储类型,则可在创建数据或将数据导入数据库时,使用单独的配置关键字对此进行指定。ArcSDE for Oracle、PostgreSQL 和 SQL Server 的 DBTUNE 表和 dbtune 文件均包含可在使用 ArcSDE 管理命令(或在 ArcCatalog 中)创建或导入数据时用来指定几何或栅格数据存储类型的关键字。

注意注意:

参与同一拓扑的数据集应以相同的几何存储类型存储。如果不是这样,则对于不同的存储类型来说,可能会出现一些因数据存储方式稍有变化而引起的拓扑错误。这些变化非常小(例如,差之毫厘),但可能会违反某条拓扑规则。例如,如果多边形要素类 A 以 SDO_GEOMETRY 存储,而多边形要素类 B 以 ArcSDE 压缩二进制 (Long Raw) 存储,您将它们放置在一个拓扑中,并指定一条拓扑规则,即要素类 A 不能与要素类 B 叠置,那么,要素在渲染方式方面的细微差别可能会造成 A 和 B 中的相邻要素相交,从而违反这条拓扑规则。

如果指定一个只有几个参数的关键字,则从 DEFAULTS 配置关键字读取其余参数。因此,如果在 Oracle 的地理数据库中创建要素类时指定 SDELOB,则软件会将 SDELOB 关键字中的值用于 GEOMETRY_STORAGE、ATTRIBUTE_BINARY 和 RASTER_STORAGE 参数,然后转到 DEFAULTS 关键字获取用于所有其他参数(例如 B_STORAGE 和 UNICODE_STRING)的值。

如果要创建不使用 DEFAULTS 关键字下所存储的几何存储类型的拓扑、terrain 或网络,则需要创建包含所需几何存储的自定义关键字。例如,如果在 Oracle 数据库中使用 SDO_GEOMETRY 创建道路要素类,则在创建包含该道路要素类的网络时,您希望该网络也使用 SDO_GEOMETRY。为此,需要创建一组用来指定 SDO_GEOMETRY 存储的 NETWORK 复合关键字。有关详细信息,请参阅复合关键字与几何存储

仅存在于特定 DBMS 实现中的关键字

对于只默认存在于一个或两个数据库中的配置关键字,请参阅您感兴趣的特定于 DBMS 的主题。

自定义配置关键字

正如日志文件和复合配置关键字描述中所述,您可以创建自己的关键字以便将要使用的特定参数和设置组合到一起。有关详细信息,请参阅自定义配置关键字


3/7/2012