SQL Server 配置参数

配置参数标识要配置的数据库对象。 其对应值用于标识在数据库中存储对象的方式。 这些参数及其配置字符串将通过配置关键字组合在一起。

在存储于 Microsoft SQL Server 的地理数据库中,ArcGIS 使用配置参数及其相应的配置字符串来定义数据的存储方式。 以下列出了不同参数可用的存储设置:

  • 定义空间列的数据类型。
  • 定义字符数据的存储方式。
  • 使用户可以在 ArcGIS 界面中使用关键字。
  • 提供描述配置关键字的注释。

旧版本:

配置关键字和参数主要是旧版功能。 当数据库需要数据库管理员进行更多干预和修补工作以使其良好运行时,需要执行这些功能。 在大多数情况下,您无需更改地理数据库中的配置参数。

创建企业级地理数据库时,将使用默认配置关键字和参数对其进行填充。 在大多数情况下,默认的参数值就足够了。 可能的例外情况如下:

  • 您可能想要更改用于要素的空间类型。 如果您希望大多数要素类使用不同于默认值的空间类型,请更改 DEFAULTS 关键字的 GEOMETRY_STORAGE 参数。 如果只希望某些要素类使用不同的空间类型,请创建自定义关键字,其中包括设置为所需空间类型的 GEOMETRY_STORAGE 参数,并包括 UI_TEXT 参数,以使得您的自定义关键字可供用户使用。
  • 如果不需要在属性字段中存储多字节字符,则可将 DEFAULTS 关键字的 UNICODE_STRING 参数设置为 FALSE。 新文本字段会使用 varchar 数据类型而不是 nvarchar 数据类型,可为您的数据库节省一小部分存储空间。 如果您组织中的数据创建人员需要创建一些表或要素类,每个表的单个字段中都存储大量单字节文本,则您可以创建自定义关键字,其中包括设置为 FALSE 的 UNICODE_STRING 参数,并包括 UI_TEXT 参数,以使得您的自定义关键字可供用户使用。
  • 如果要将数据分组到不同的文件组中,以便为单个文件组创建备份,则可以为各个不同数据类型创建自定义关键字,并在每个关键字中设置参数,以便在特定文件组中存储该类型数据的所有表和索引。 例如,您可能希望将所有经常编辑的数据都转到同一个文件组,以便更频繁地创建备份,这时您可以创建一个 EDITED_LAYERS 关键字,其中包含业务表、添加表和删除表参数,用于将这些图层所有的表和索引存储在同一个文件组中。

存在可以控制以下各项的其他参数,但使用这些参数的可能性不大。 由于这些参数保留向后兼容性,因此保留在此页面中以在添加这些参数时帮助您了解其预期用途:

  • 是否对索引进行聚集。
  • 各个索引页的填充比例 (FILLFACTOR)
  • 数据页行内应存储的二进制数据量 (OUT_OF_ROW)。
  • 定义 XML 文档的存储方式。 由于 ArcGIS 不直接使用 XML 文档,因此您不太可能需要设置这些参数。

下表按字母顺序列出了所有可在 SQL Server 中的地理数据库内使用的配置参数。 如果适用,则将先列出默认值。 下表之后的部分更详细深入地解释了各个参数(按相关功能进行了粗略分组)。

参数名称描述

A_CLUSTER_RASTER

添加表(A 表)中栅格列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

A_CLUSTER_ROWID

A 表中 rowid 列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

A_CLUSTER_STATEID

A 表中 stated 列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

A_CLUSTER_USER

A 表中任何用户定义索引的索引类型

0 或 1;1 = 聚集,0 = 非聚集

A_CLUSTER_XML

A 表中 xml doc 类型列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

A_INDEX_RASTER

添加表(A 表)中栅格列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

A_INDEX_ROWID

A 表中对象 ID 列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

A_INDEX_STATEID

A 表中 sde_state_id 列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

A_INDEX_USER

A 表索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

A_INDEX_XML

A 表中 XML 列索引表的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

A_OUT_OF_ROW

确定对于 A 表中的 varbinary(max) 列,将数据存储在行内还是行外

如果设置为 0,可以直接在表格的数据页存储多达 8000 个字节。如果设置为 1,数据将始终存储在行外。

0 或 1

A_STORAGE

A 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

AUX_CLUSTER_COMPOSITE

主键的索引类型

1 或 0;1 = 聚集,0 = 非聚集

AUX_INDEX_COMPOSITE

栅格 AUX 表复合列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

AUX_STORAGE

栅格 AUX 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

B_CLUSTER_RASTER

业务表中栅格列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

B_CLUSTER_ROWID

业务表中 rowid 列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

B_CLUSTER_TO_DATE

指定在启用存档的表的历史记录表中,to_date、archive_rowid 列的索引类型。

0 或 1;1 = 聚集,0 = 非聚集

B_CLUSTER_USER

业务表中任何用户定义索引的索引类型

0 或 1;1 = 聚集,0 = 非聚集

B_CLUSTER_XML

业务表中 xml doc 类型列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

B_INDEX_RASTER

业务表中栅格列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

B_INDEX_ROWID

业务表中对象 ID 列索引和栅格 rowid 索引 R<N>_SDE_ROWID_UK 的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

B_INDEX_TO_DATE

用于创建索引 R<registration_id>_sde_todate 的存储参数信息,在存档操作期间更新历史记录表时使用该信息

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

B_INDEX_USER

业务表用户索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

B_INDEX_XML

业务表中 XML 列索引表的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

B_OUT_OF_ROW

确定对于业务表中的 varbinary(max) 列,将数据存储在行内还是行外

如果设置为 0,可以直接在表格的数据页存储多达 8000 个字节。如果设置为 1,数据将始终存储在行外。

0 或 1

B_STORAGE

业务表和栅格属性表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

BLK_CLUSTER_COMPOSITE

主键的索引类型

1 或 0;1 = 聚集,0 = 非聚集

BLK_INDEX_COMPOSITE

栅格 BLK 表复合列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

BLK_OUT_OF_ROW

确定对于栅格块表中的 varbinary(max) 列,将数据存储在行内还是行外

如果设置为 0,可以直接在表格的数据页存储多达 8000 个字节。如果设置为 1,数据将始终存储在行外。

0 或 1

BLK_STORAGE

栅格 BLK 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

BND_CLUSTER_COMPOSITE

主键的索引类型

0 或 1;1 = 聚集,0 = 非聚集

BND_CLUSTER_ID

RASTER_ID 和 SEQUENCE_NBR 列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

BND_INDEX_COMPOSITE

栅格 BND 表复合列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

BND_INDEX_ID

栅格 BND 表 RID 列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

BND_STORAGE

栅格 BND 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

COLLATION_NAME

用户定义文本列的排序规则

如果未指定其他排序规则,则默认使用数据库排序规则

COMMENT

用于添加注释的行

描述不能超过 2,048 个字符

D_CLUSTER_ALL

SDE_STATES_ID、SDE_DELETES_ROW_ID 和 DELETED_AT 列的索引类型

0 或 1;1 = 聚集,0 = 非聚集

D_CLUSTER_DELETED_AT

DELETED_AT 列的索引类型

1 或 0;1 = 聚集,0 = 非聚集

D_INDEX_ALL

SDE_STATES_ID、SDE_DELETES_ROW_ID 和 DELETED_AT 列中复合索引的 FILLFACTOR 和位置(文件组)

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

D_INDEX_DELETED_AT

删除表(D 表)中 DELETED_AT 列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

D_STORAGE

删除表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

GEOMETRY_STORAGE

指示空间列的存储类型

GEOMETRY 或 GEOGRAPHY

GEOM_SRID_CHECK

在几何列上为 SRID 值添加检查约束

TRUE 或 FALSE

I_STORAGE

定义用于生成 ID 的 i 表的存储。

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

MVTABLES_MODIFIED_INDEX

Mvtables_modified 索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

MVTABLES_MODIFIED_TABLE

Mvtables_modified 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

NUM_DEFAULT_CURSORS

控制 SQL Server 游标阈值

-1 表示以同步方式生成所有键集

0 表示以异步方式生成所有游标键集

对于其他所有值,SQL Server 查询优化器会将游标集中的预期行数与游标阈值中设置的数值进行对比,如果超出阈值,则以异步方式构建键集。

PERMISSION_CACHE_THRESHOLD

控制数据库查询 sysprotects 表所花费的时间(以毫秒为单位)

如果所用时间超过了 PERMISSION_CACHE_THRESHOLD 值,将创建一个临时表(缓存)来存储用户权限并在此后使用该表。 如果 PERMISSION_CACHE_THRESHOLD = 0,则始终会缓存权限。 当 PERMISSION_CACHE_THRESHOLD 设置为任意大于 0 的值时,如果查询时间超过了这一以毫秒为单位的值,则会缓存权限。 如果 PERMISSION_CACHE_THRESHOLD 设置为 -1(默认设置),则永远不会缓存权限。

0-1,000

-1(禁用)为默认值

RAS_CLUSTER_ID

RAS 表主键的索引类型

1 或 0;1 = 聚集,0 = 非聚集

RAS_INDEX_ID

栅格 RAS 表 RID 索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

RAS_STORAGE

栅格 RAS 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

RASTER_STORAGE

定义栅格数据存储类型

binary

STATES_INDEX

状态表的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

STATES_LINEAGES_INDEX

控制 SDE_state_lineages 表主键索引的存储方式

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

STATES_LINEAGES_TABLE

State_lineages 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

STATES_TABLE

状态表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

UI_NETWORK_TEXT

用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包含网络配置的描述

描述不能超过 2,048 个字符

ArcGIS Pro 中未使用

UI_TERRAIN_TEXT

用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包含 terrain 配置的描述

描述不能超过 2,048 个字符

UI_TEXT

用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包含相关的非复合配置关键字的描述

描述不能超过 2,048 个字符

UI_TOPOLOGY_TEXT

用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包含拓扑配置的描述

描述不能超过 2,048 个字符

UNICODE_STRING

确定是否使用 Unicode 文本类型

如果设置为 TRUE,则字符字段将以 UNICODE 兼容的数据类型进行存储。 例如,如果将 UNICODE_STRING 参数设置为 FALSE,则字符串数据类型将为 VARCHAR。 如果将 UNICODE_STRING 设置为 TRUE,则字段的数据类型将为 NVARCHAR。

TRUE 或 FALSE

VERSIONS_INDEX

版本索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

VERSIONS_TABLE

版本表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_COLUMN_PATH_IDX

确定是否创建 XML 路径索引

1 或 0

0 = 不创建路径索引,1 = 创建路径索引。

XML_COLUMN_PRIMARY_IDX

确定是否创建 XML 主索引

1 或 0

0 = 不创建主索引,1 = 创建主索引

XML_COLUMN_PROPERTY_IDX

确定是否创建 XML 属性索引

0 或 1

0 = 不创建属性索引,1 = 创建属性索引

XML_COLUMN_SCHEMA

指定用于验证的 XML 模式

XML 模式集合名称,不超过 128 个字符

XML_COLUMN_TYPE

指定列可以存储的 XML 文档类型

CONTENT 或 DOCUMENT

XML_COLUMN_VALUE_IDX

确定是否创建 XML 值索引

1 或 0

0 = 不创建值索引,1 = 创建值索引。

XML_DOC_INDEX

sde_xml_doc<n> 表中 xmldoc<n>_pk 索引和 xml_doc<n>_ix 索引的存储子句

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_DOC_MODE

XML 文档的存储类型

COMPRESSED 或 UNCOMPRESSED

XML_DOC_OUT_OF_ROW

确定将 XML 文档 BLOB 数据存储在行内还是行外;仅适用于 varbinary(max) 列

如果设置为 0,可以直接在表格的数据页存储多达 8000 个字节。如果设置为 1,数据将始终存储在行外。

0 或 1

XML_DOC_STORAGE

sde_xml_doc<n> 表的存储子句

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_DOC_UNCOMPRESSED_TYPE

XML_DOC_MODE 参数设置为 UNCOMPRESSED 后,XML_DOC_UNCOMPRESSED_TYPE 参数可确定 XML 文档的存储格式

由于 XML_DOC_MODE 的默认设置为 COMPRESSED,因此默认情况下 XML_DOC_UNCOMPRESSED_TYPE 参数不存在。 可能值:BINARY、TEXT、或 UNICODE

XML_IDX_CLUSTER_DOUBLE

指示是否对 sde_xml_idx<n> 表中 double_tag 列的 xmlix<n>_db 索引进行聚集的存储子句

0 或 1;1 = 聚集,0 = 非聚集

XML_IDX_CLUSTER_ID

指示是否对 sde_xml_idx<n> 表中 id 列的 xmlix<n>_id 索引进行聚集的存储子句

0 或 1;1 = 聚集,0 = 非聚集

XML_IDX_CLUSTER_PK

指示是否对 sde_xml_idx<n> 表中 xml_key_column 标识列的 xmlix<n>_pk 索引进行聚集的存储子句

1 或 0;1 = 聚集,0 = 非聚集

XML_IDX_CLUSTER_STRING

指示是否对 sde_xml_idx<n> 表中 string_tag 列的 xmlix<n>_st 索引进行聚集的存储子句

0 或 1;1 = 聚集,0 = 非聚集

XML_IDX_CLUSTER_TAG

指示是否对 sde_xml_idx<n> 表中 tag_id 列的 xmlix<n>_tg 索引进行聚集的存储子句

0 或 1;1 = 聚集,0 = 非聚集

XML_IDX_FULLTEXT_CAT

全文目录的名称,在该全文目录中为 sde_xml_doc<n> 表中 xml_doc_val 列的内容和 sde_xml_idx<n> 表中 text_tag 列的内容建立索引。

创建全文目录时所命名的名称;默认为 SDE_DEFAULT_CAT。 如果您为目录设置了其他名称,则必须更改此参数的值以便与之匹配。

XML_IDX_FULLTEXT_LANGUAGE

对 sde_xml_doc<n> 表中 xml_doc_val 列的内容和 sde_xml_idx<n> 表中 text_tag 列的内容构建文本索引时,用于语言分析的语言

没有为此参数设置的默认值。 有关有效的语言设置,请参阅 DBMS 文档。

XML_IDX_FULLTEXT_TIMESTAMP

确定是否向 sde_xml_idx<n> 表中添加时间戳列

1 或 0

1 = 添加时间戳列,0 = 不添加时间戳列。

XML_IDX_FULLTEXT_UPDATE_METHOD

指定如何将 sde_xml_doc<n> 表(XML 文档表)中 xml_doc_val 列的更改内容和 sde_xml_idx<n> 表(XML 列的索引表)中 text_tag 列的更改内容传递至全文索引

CHANGE_TRACKING BACKGROUND 或 CHANGE_TRACKING MANUAL

XML_IDX_INDEX_DOUBLE

sde_xml_idx<n> 表中 double_tag 列的 xmlix<n>_db 索引的存储子句

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_IDX_INDEX_ID

xml_idx<n> 表中 ID 列的 xmlix<n>_id 索引的存储子句

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_IDX_INDEX_PK

sde_xml_idx<n> 表中 xml_key_column 标识列的 xmlix<n>_pk 索引的存储子句

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_IDX_INDEX_STRING

sde_xml_idx<n> 表中 string_tag 列的 xmlix<n>_st 索引的存储子句

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_IDX_INDEX_TAG

sde_xml_idx<n> 表中 tag_id 列的 xmlix<n>_tg 索引的存储子句

有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。

XML_IDX_OUT_OF_ROW

确定将 sde_xml_idx<n> 表(XML 列的索引表)中 text_tag 列的内容存储在行内还是行外;仅适用于 varbinary(max) 列

如果设置为 0,可以直接在表格的数据页存储多达 8000 个字节。如果设置为 1,数据将始终存储在行外。

0 或 1

XML_IDX_STORAGE

sde_xml_idx<n> 表(XML 列的索引表)的存储子句

有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。

配置参数汇总

对于 XML 参数,<n> 指与特定 XML 列关联的 xml_column_id

配置参数有多种分类方式。 通常,一个参数可归属于多个类别。 例如,可将 B_CLUSTER_RASTER 参数归类为业务表参数、栅格参数或聚集索引参数。 以下部分介绍了这些分类。

特定于要素类和栅格存储的参数

以下参数用于定义表在 SQL Server 的地理数据库中的存储方式。

业务表参数

业务表是指要素类或非空间表的属性表。 业务表参数以字母 B 开头,用于定义业务表及其索引的存储。 参数如下:

参数描述

B_CLUSTER_ROWID

业务表中行 ID(对象 ID)列的索引类型;0 = 非聚集索引,1 = 聚集索引

B_CLUSTER_USER

业务表中任何用户定义索引的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

B_CLUSTER_XML

业务表中 XML 类型列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

B_CLUSTER_RASTER

业务表中栅格列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

B_INDEX_ROWID

为业务表中行 ID 列的索引定义填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

B_INDEX_ROWID "with fillfactor=99 
ON IDXfg"

B_INDEX_USER

为业务表中任意用户定义的索引定义填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

B_INDEX_USER "with fillfactor=99 
ON IDXfg"

B_INDEX_XML

为业务表中的 XML 索引定义填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

B_INDEX_XML "with fillfactor=99 
ON XMLfg"

B_INDEX_RASTER

为业务表中栅格列的索引定义填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

B_INDEX_RASTER "with fillfactor=99 
ON RASfg"

B_INDEX_TO_DATE

用于创建索引 R<registration_id>_sde_todate 的存储信息,在执行存档操作期间更新历史记录表时使用该信息

注:

此参数没有相应的 A 表参数。

B_OUT_OF_ROW

值为 0 或 1

如果设置为 0,直接在表格的数据页存储多达 8000 个字节。

如果设置为 1,数据始终存储在行外。

B_STORAGE

业务表的文件组位置

可使用 ON 来控制位置,例如:

B_STORAGE "ON ADDS_FG"

对于非空间业务表,请执行以下操作之一:

  • 将 B_CLUSTER_ROWID 参数的 config_string 改为 1。 通过此操作可为对象 ID 字段创建聚集索引。 后续创建的所有用户定义索引都将为非聚集索引。
  • 将 B_CLUSTER_USER 参数的 config_string 改为 1。 ArcGIS 创建的第一个用户定义索引将为聚集索引。
  • 创建数据并更改要进行聚集的索引(或复合索引)。

A 表参数

A 表用于存储使用传统版本化的地理数据库中要素类所插入和更新的编辑内容。 A 表在结构上与业务表几乎相同,只是多了用于追踪状态 ID 的列。 增加表(即 A 表)参数以字母 A 开头。 A 表参数如下:

参数描述

A_CLUSTER_ROWID

A 表中行 ID 列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

A_CLUSTER_STATEID

A 表中 stated 列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

注:

此参数没有相应的业务表参数。

A_CLUSTER_USER

A 表中任何用户定义索引的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

A_CLUSTER_XML

A 表中 XML 类型列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

A_CLUSTER_RASTER

A 表中栅格列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

A_INDEX_ROWID

为 A 表中行 ID 列的索引指定填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

A_INDEX_ROWID "with fillfactor=99 
ON IDXfg"

A_INDEX_STATEID

为 A 表中状态 ID 列的索引指定填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

A_INDEX_STATEID "with fillfactor=99 
ON STATEIDXfg"

注:

此参数没有相应的业务表参数。

A_INDEX_USER

为 A 表中任意用户定义的索引指定填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

A_INDEX_USER "with fillfactor=99 
ON IDXfg"

A_INDEX_XML

为 A 表的 XML 索引指定填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

A_INDEX_XML "with fillfactor=99 
ON XMLfg"

A_INDEX_RASTER

为 A 表中栅格列的索引指定填充系数和位置(文件组)

要指定文件组,请使用 SQL ON 语句,例如:

A_INDEX_RASTER "with fillfactor=99 
ON RASfg"

A_OUT_OF_ROW

值为 0 或 1

如果设置为 0,直接在表格的数据页存储多达 8000 个字节。

如果设置为 1,数据始终存储在行外。

A_STORAGE

指定在数据集注册为版本后将在哪个文件组创建 A 表

可使用 ON 来控制位置,例如:

A_STORAGE "ON ADDS_FG"

D 表参数

可通过 D 表对使用传统版本化的表中更新和删除的内容进行追踪。 D 表参数的工作原理与 A 表参数相同。 所有 D 表参数都以字母 D 开头。 如下所示:

参数描述

D_CLUSTER_ALL

SDE_STATES_ID、SDE_DELETES_ROW_ID 和 DELETED_AT 列中所创建索引的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

D_CLUSTER_DELETED_AT

DELETED_AT 列中索引的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

D_INDEX_ALL

为 SDE_STATE_ID、SDE_DELETES_ROW_ID 和 DELETED_AT 列中的复合索引指定填充系数和位置(文件组),例如:

D_INDEX_ALL "with fillfactor=99 
ON Deletes_fg"

D_INDEX_DELETED_AT

为 deleted_at 列中的索引指定填充系数和位置(文件组),例如:

D_INDEX_DELETED_AT "with fillfactor=80
 ON Deletes_fg"

D_STORAGE

指定在数据集注册为版本后将在哪个文件组创建 D 表

可使用 ON 来控制位置,例如:

D_STORAGE "ON Deletes_fg"

栅格表参数

ArcGIS 中的二进制和 rasterblob 栅格(均为 BLOB 存储类型)存储为五个独立表:波段表 (SDE_bnd_#)、块表 (SDE_blk_#)、栅格表 (SDE_ras_#)、辅助表 (SDE_aux_#) 和业务表。

栅格可作为要素类中的嵌入式目录或列进行存储,也可以作为独立的数据集。

栅格表参数以 AUX、BLK、BND 和 RAS 开头,与栅格表相对应。 定义栅格业务表存储的参数由业务表参数定义。

在所有栅格表中,只有块表的大小会增加。

使用二进制栅格时,请务必将 BND_CLUSTER_COMPOSITE config_string 设置为 1 以确保为波段表生成聚集索引。

栅格表参数如下:

参数描述

AUX_CLUSTER_COMPOSITE

辅助表主键的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

AUX_INDEX_COMPOSITE

为辅助表的主键索引指定填充系数和文件组位置,例如:

AUX_INDEX_COMPOSITE	"WITH FILLFACTOR= 90 
ON AUX_FG"

AUX_STORAGE

为辅助表指定文件组位置

可使用 ON 来指定位置,例如:

AUX_STORAGE	"ON AUX_FG"

BLK_CLUSTER_COMPOSITE

块表主键的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

BLK_INDEX_COMPOSITE

为块表的复合索引指定文件组位置

可使用 ON 来指定位置,例如:

BLK_INDEX_COMPOSITE	"WITH FILLFACTOR = 95 
ON BLK_FG"

BLK_STORAGE

为块表指定文件组位置

可使用 ON 来指定位置,例如:

BLK_STORAGE	"ON BLK_FG"

BND_CLUSTER_COMPOSITE

波段表主键索引的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

BND_CLUSTER_ID

波段表中 raster_id 和 sequence_nbr 列的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

BND_INDEX_COMPOSITE

为波段表的主键索引指定填充系数和文件组位置,例如:

BND_INDEX_COMPOSITE	"WITH FILLFACTOR =90 
ON BND_FG"

BND_INDEX_ID

为波段表的 raster_id 列索引和 sequence_nbr 列索引指定填充系数和文件组位置,例如:

BND_INDEX_ID	"WITH FILLFACTOR = 90 
ON BND_FG"

BND_STORAGE

波段表的文件组位置

可使用 ON 来控制位置,例如:

BND_STORAGE " ON BND_FG"

RAS_CLUSTER_ID

栅格表主键的索引类型

如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。

RAS_INDEX_ID

栅格表主键索引的填充系数和位置(文件组)

可使用 ON 来控制位置,例如:

RAS_INDEX_ID	"WITH FILLFACTOR = 85 ON RAS_FG"

RAS_STORAGE

栅格表的文件组位置

可使用 ON 来控制位置,例如:

RAS_STORAGE	" ON RAS_FG"

RASTER_STORAGE

仅支持一种栅格类型,即二进制,该类型用于在基表中创建整型字段并在关联的栅格表中创建 BLOB 字段。

B_STORAGE 参数用于定义栅格属性表的存储类型。 此表(或这些表;可以存在多个此类表)存储栅格像元值的属性值。 如果要将这些表存储在与要素类业务表不同的位置,请为栅格属性表创建一个可指定不同存储信息的栅格关键字。 指示数据创建者在创建栅格数据集时使用此关键字。

特定于索引的参数

以下内容介绍了用于对 SQL Server 地理数据库中的索引存储进行控制的参数。

填充系数参数

此类参数的结构为 *_INDEX_*。 它们用于指定索引的 FILLFACTOR 参数。 FILLFACTOR 参数指定在创建或重建索引时,在索引的每个叶级页面上使用数据填充的空间百分比。

SQL Server 使用默认值 0,而 ArcGIS 使用默认值 100。填充系数值 0 和 100 等效;两个值均意味着页级页面将被填满。

您可以使用 FILLFACTOR 配置参数微调索引页面和页面分割,从而获得更好的性能。 要了解在为表定义索引时,如何基于用户对表的更新频率和类型来选择填充系数,请参阅 Microsoft SQL Server 文档

聚集索引参数

注:

您无法将聚集索引同它对应的表分开;因此,对于“特定于要素类和栅格存储的参数”中所述的表参数,请指定一个与表关联的聚集索引位置相同的存储位置。

此类参数的结构为 *_CLUSTER_*,用于指示某个特定索引是否为聚集索引(1 = 聚集索引,0 = 为非聚集索引)。 聚集索引在其叶节点处存储表格数据。 聚集索引叶级数据页根据聚集索引键值得出其排序顺序。 对于配置参数,必须遵循一条重要原则:不能将表同它所对应的聚集索引分开。 例如,当要素类的业务表应该存储在 NEWGRP 文件组中时,您指定要素类的行 ID (ROWID) 索引在 NEWIDXGRP 文件组中创建。 ROWID 索引将创建为聚集索引。 配置设置可能如下所示:

keywordparameter_nameconfig_string

DEFAULTS

B_CLUSTER_ROWID

1

DEFAULTS

B_INDEX_ROWID

WITH FILLFACTOR=100 ON NEWIDXGRP

DEFAULTS

B_STORAGE

ON NEWGRP

在上述示例中,业务表和业务表的索引都将位于 NEWIDXGRP 文件组中。 将先创建业务表,然后对 ROWID 列应用主键约束。 在以下语句中,该约束在 ROWID 列上创建聚集索引并引用 NEWIDXGRP 文件组:

ALTER TABLE data.dbo.mytable 
 ADD CONSTRAINT f4_pk PRIMARY KEY CLUSTERED (OBJECTID) 
 WITH FILLFACTOR=100  
 ON NEWIDXGRP

因此,ON NEWGRP 配置字符串是冗余的,因为索引在表之后创建,所以 B_INDEX_ROWID 的配置字符串会覆盖 B_STORAGE 的配置字符串。 在接下来的示例中,将为要素表而非要素表的索引指定文件组。

keywordparameter_nameconfig_string

DEFAULTS

B_CLUSTER_ROWID

1

DEFAULTS

B_INDEX_ROWID

WITH FILLFACTOR=100

DEFAULTS

B_STORAGE

ON NEWGRP

在此示例中,业务表和 FID 列上的聚集索引都将位于 NEWGRP 文件组中。 出现此种情况的原因是:首先对表进行创建,而在之后应用 ALTER TABLE 语句时,由于之前的 config_string 列中未列出类似 ON 语句的字符串,因此不会追加任何 ON 语句。

ALTER TABLE date.dbo.mytable 
ADD CONSTRAINT r15_pk PRIMARY KEY CLUSTERED (OBJECTID) 
WITH FILLFACTOR=100

用于存储文本的参数

以下参数用于定义不同类型的文本数据在 SQL Server 地理数据库中的存储方式。

行外文本参数

栅格列使用 varbinary(max) 数据类型。 您可以通过 *_OUT_OF_ROW 参数来指定是将 varbinary(max) 数据的前 8000 个字节存储在行内,还是将全部字节都存储在行外。 默认情况下,这些参数设置为 0,意味着所有数据都将存储在行外。

文本列存储参数

有两个参数会影响用户表中的文本列:UNICODE_STRING 和 COLLATION_NAME。 UNICODE_STRING 参数决定文本列是否使用 Unicode 编码。 默认情况下,此参数设置为 TRUE,意味着所有使用 DEFAULTS 配置关键字创建的文本数据均以 Unicode 格式存储 (UTF-8)。 如果此参数设置为 FALSE,则文本使用为数据库设置的编码存储。

如果 UNICODE_STRING 设置为 TRUE,则可使用 COLLATION_NAME 参数为用户定义的文本列指定一个与数据库排序规则不同的排序规则。 默认情况下,所有字符数据列均使用默认的数据库排序规则。 创建新的数据集(例如表或要素类)后,在 COLLATION_NAME 中指定的排序规则将应用于每个字符数据列。 如果 COLLATION_NAME 为空,则将使用数据库排序规则。 如果 UNICODE_STRING 参数设置为 FALSE,将忽略 COLLATION_NAME 参数。

如要设置 COLLATION_NAME 参数,请使用区分大小写的数据库排序规则版本。 这通常意味着将排序规则名称中的 CI 更改为 CS。 如果您不确定,请参阅 SQL Server 文档或执行以下查询以获取排序规则名称列表:

SELECT * FROM ::fn_helpcollations()

如果您要存储土耳其语文本值,则 COLLATION_NAME 参数尤其重要。 为避免土耳其语字母表中字母 i 的大小写问题,使用土耳其语的用户应对 COLLATION_NAME 参数进行设置以指示他们正在使用土耳其语的、区分大小写的文本数据排序规则。

影响空间存储的参数

特定于索引的参数一节中已对空间索引参数进行了论述。 影响空间数据存储的其他参数包括 GEOMETRY_STORAGE 和 GEOM_SRID_CHECK。

GEOMETRY_STORAGE

SQL Server 中的地理数据库可使用下文所述的空间数据存储格式。 GEOMETRY_STORAGE 参数指定用于新要素类的几何存储方法。

  • Microsoft SQL Server 几何类型 - Microsoft 的一种空间类型,用于管理在任意平面上由坐标定义的空间数据(无需考虑地球曲率)。 这是 SQL Server 中地理数据库的默认空间存储方法。 如果要以此种格式来存储空间数据,请保留 GEOMETRY_STORAGE 参数的设置,即 GEOMETRY。 如果未设置 GEOMETRY_STORAGE 参数,则假定为 GEOMETRY 类型。
  • Microsoft SQL Server Geography 类型 - Microsoft 的一种空间类型,用于管理由经度/纬度坐标定义的空间数据。 如果您的要素跨越较大区域且需要考虑地球曲率,请使用此类型。 如果您要将此格式设置为地理数据库的默认存储类型,请在 DEFAULTS 配置关键字参数列表下方将 GEOMETRY_STORAGE 参数设置为 GEOGRAPHY。 如果仅希望将其用于某些数据集,请创建一个自定义关键字,其中包含设置为 GEOGRAPHY 的 GEOMETRY_STORAGE 参数,并包含 UI_TEXT 参数,以便数据创建人员可以在 ArcGIS 客户端应用程序中使用该关键字。

如果数据库中的所有要素类使用相同的几何存储方法,则在 DEFAULTS 配置关键字中设置一次 GEOMETRY_STORAGE 参数即可。

注:

以下几何存储类型已在 ArcGIS Pro 中弃用:

  • SDEBINARY
  • WKB_GEOMETRY

无法创建使用这些存储类型的要素类。 目前,您可以查看使用这些几何存储类型的要素类,但将在未来版本中移除此功能。 请使用迁移存储地理处理工具将要素类迁移到受支持的数据类型,以确保您能够继续访问数据。

GEOM_SRID_CHECK

如果您在 ArcGIS 中创建使用 SQL Server 几何存储类型的要素类,或者使用 SQL 创建具有 SQL Server 几何列的空间表并将该表注册到地理数据库中,则该表中的所有记录必须使用相同的空间参考 ID (SRID)。

数据库管理系统并不强制表中的所有记录共有一个 SRID。 因此,如果您计划使用 SQL 来编辑具有 SQL Server 几何列且已注册到地理数据库中的表,建议您将 GEOM_SRID_CHECK 参数设置为 TRUE。 将此参数设置为 TRUE 后,ArcGIS 将在几何列上为 SRID 值添加检查约束。 此方法可确保在 ArcGIS 外部执行编辑操作的用户不会向同一表中添加多个 SRID。

警告:

将此参数设置为 TRUE 会对性能产生影响。 考虑到这个原因,在没有用户使用 SQL(或者第三方软件)对注册到地理数据库的空间表进行编辑的情况下,请勿将此参数设置为 TRUE。

用于 XML 文档存储的参数

注:

如果您在地理数据库中未使用 XML 列和 XML 文档,则无需对这些参数进行配置。 由于不再有 ArcGIS 客户端直接使用 XML 文档,因此您不太可能需要更改这些参数。

您可以为使用原生 SQL Server XML 列 (DB_XML) 的表设置以下参数:

XML_COLUMN_SCHEMA
XML_COLUMN_TYPE
XML_COLUMN_PRIMARY_IDX
XML_COLUMN_PATH_IDX 
XML_COLUMN_PROPERTY_IDX
XML_COLUMN_VALUE_IDX

XML_COLUMN_SCHEMA 用于指定添加或更改 XML 数据时所使用的模式集合。 XML 模式集合对 XML 数据实施模式约束。

与 XML 模式集合关联的 XML 数据被称为类型化 XML。 XML_COLUMN_TYPE 参数用于指定 XML 列存储的 XML 文档类型;CONTENT 或 DOCUMENT。 默认值为 CONTENT。 仅当 XML 数据只具有一个顶级元素时,才应使用 DOCUMENT。

XML_COLUMN_PRIMARY_IDX、XML_COLUMN_PATH_IDX、XML_COLUMN_PROPERTY_IDX 和 XML_COLUMN_VALUE_IDX 用于确定是否在 XML 列中创建主索引、路径索引、属性索引或值索引。

如果搜索操作通常对整个 XML 文档内容进行检查以查看其中是否包含特定字,或者如果您根本不对 XML 文档进行搜索,则对 XML 文档表的使用将更加频繁。 XML 文档表将有三个参数:

XML_DOC_INDEX
XML_DOC_STORAGE
XML_DOC_OUT_OF_ROW

XML_DOC_STORAGE 为表的创建语句提供存储字符串。 XML_DOC_INDEX 包含索引填充系数和存储参数,而 XML_DOC_OUT_OF_ROW 用于确定将 BLOB 数据存储于行外。 有关详细信息,请参阅本主题的“行内文本参数”一节。

如要对单个元素进行频繁搜索,则 XML 文档索引表将是 XML 表中受访问最为频繁的部分。 该表具有更多配置参数;这些参数均以 XML_IDX_ 开头。

XML_IDX_CLUSTER_DOUBLE
XML_IDX_CLUSTER_ID
XML_IDX_CLUSTER_PK
XML_IDX_CLUSTER_TAG
XML_IDX_INDEX_DOUBLE
XML_IDX_INDEX_ID
XML_IDX_INDEX_PK
XML_IDX_INDEX_TAG
XML_IDX_STORAGE
XML_IDX_OUT_OF_ROW

XML_IDX_CLUSTER_* 参数用于指定应对 XML 文档索引表中的哪个索引进行聚集。 默认情况下,对主键索引(xml_key_column)进行聚集。

以下参数对 XML 列的 XML 文档表和 XML 文档索引表均有影响。 它们用于控制对文档内容建立索引的方式和时间。

XML_IDX_FULLTEXT_CAT
XML_IDX_FULLTEXT_LANGUAGE
XML_IDX_FULLTEXT_TIMESTAMP
XML_IDX_FULLTEXT_UPDATE_METHOD

XML_IDX_FULLTEXT_CAT 包含您所创建的全文目录的名称。 默认为 SDE_DEFAULT_CAT。 如果您要将全文目录的名称设置为 SDE_DEFAULT_CAT 之外的其他名称,则必须更新此参数的 config_string。

XML_IDX_FULLTEXT_LANGUAGE 表示对 XML 文档内容构建文本索引时用于语言分析的语言。 未提供默认值;因此,可使用在 SQL Server 默认全文语言设置中定义的语言。 如果提供了值,则将使用此语言进行语言分析。

XML_IDX_FULLTEXT_TIMESTAMP 和 XML_IDX_FULLTEXT_UPDATE_METHOD 用于控制全文索引维护。 update_method 参数指示如何将文档表的更改内容传递至全文索引。 默认情况下(默认值为 1),时间戳参数将向 SDE_xml_idx<xml_column_id> 表中添加时间戳列。 如果设置为 0,则不添加该列。

如果 update_method 和时间戳均设置为 0,则不执行索引维护,并且每当指示 ArcGIS 更新全文索引时(通过 SE_xmlindex_update_text_index),索引将被填满。

如果 update_method 设置为 0 而时间戳设置为 1,则不执行索引维护,并且 ArcGIS 将对最近一次增量更新后的更改内容执行增量索引填充。

如果 update_method 设置为 CHANGE_TRACKING MANUAL,那么数据库将会维护发生更改的行,但不更新索引。

如果 update_method 设置为 CHANGE_TRACKING BACKGROUND,数据库将对更改内容进行追踪并自动更新索引。

建议您使用随地理数据库提供的默认设置。 如果服务器无法完成其工作负载并且您只能更改索引建立行为,则请将更改追踪功能设置为手动 (CHANGE_TRACKING MANUAL)。

接下来的参数 XML_IDX_INDEX_* 用于控制 SDE_xml_idx<xml_column_id> 表索引的填充系数和存储方法。 XML_IDX_TEXT_IN_ROW 用于控制可在行内存储的 XML 文档 BLOB 数据量。 同大多数行内文本设置一样,建议您不要更改默认设置。

影响日志文件表和索引的参数

日志文件表供 ArcGIS 使用,用于维护临时性和永久性的所选记录集合。

将始终在 SQL Server 的地理数据库中的 tempdb 中创建会话日志文件表。 如果您于多年前创建了地理数据库,即使已经进行过更新,也仍可能在 SDE_dbtune 表中看到这些日志文件参数。 即便日志文件表参数存在于这些地理数据库中,系统也会将其忽略。

其他配置参数

有些参数不适合划分至任何特定类别。 本节将对这些参数进行介绍。

NUM_DEFAULT_CURSORS 参数

NUM_DEFAULT_CURSORS 参数用于控制游标阈值。 此参数指定了将异步生成游标键集的游标集中的行数。 默认值为 -1,意味着将以同步方式生成所有键集,这种设置更适合较小的游标集。 如果将参数设置为 0,则会以异步方式生成所有游标键集。 如果将参数设置为 0 和 -1 之外的其他值,则无论日志文件参数设置为何值,查询优化器都会将游标集中的预期行数与游标阈值中设置的数值进行对比,如果超出阈值,那么以异步方式构建键集。 异步填充意味着在填充游标期间您可以对游标中已存在的行进行访问。 而对于同步填充,只有所有行都填充至游标后,才可以进行访问。

警告:

建议不要更改默认值;更改此值会对整个服务器造成影响。 更改默认值后,将很难确定平均游标键集的大小。 除非您确定更改该值将有助于提高性能,否则请不要进行更改。

PERMISSION_CACHE_THRESHOLD

尽管此参数仍存在于地理数据库中,但是已经不再会对连接性能造成很大影响。 默认情况下,此设置为禁用状态(设置为 -1)。

添加此参数后,确定数据库中对象权限的方法需要查询数据库系统表并构建一个连接用户可以访问的数据集列表。 如果数据库中包含大量对象,则可能减缓连接速度。 SQL Server 随后改进了访问此信息的方式,致使该参数不再使用。

如果对象权限信息的初始查询值超出为参数设置的阈值(以毫秒为单位),则 PERMISSION_CACHE_THRESHOLD 将构建临时表。 最大值为 1000 毫秒。 如果您将 PERMISSION_CACHE_THRESHOLD 设置为 0,则始终会构建临时表,并在其中存储连接期间的权限。

PERMISSION_CACHE_THRESHOLD 仅可以用于 DEFAULTS 参数组中。 临时表只在连接期间存在,因此如果在会话期间连接用户的权限发生更改,那么用户只有断开连接并重新连接至数据库,才能查看到更改内容。

用户界面参数

用户界面参数以 UI 开头,用于指示其关联配置关键字在 ArcGIS 用户界面和 ArcObjects 中是否可用。 UI_TEXT 用于非复合配置关键字。 UI_TOPOLOGY_TEXT 用于拓扑关键字。 UI_NETWORK_TEXT 用于网络关键字。 需要 UI 参数的默认配置关键字已具备 UI 参数。 仅在创建您自己的自定义关键字时才需要添加这些参数的其中之一。

已弃用的几何存储参数

ArcGIS Pro 2.6 和 ArcGIS Enterprise 10.8.1 版本开始,包括 ArcSDE 压缩二进制 (SDEBINARY) 和 Open Geospatial Consortium (OGC) 熟知二进制 (OGCWKB) 在内的压缩二进制几何存储格式已经被弃用。 从后续的 ArcGIS 版本开始,它们将不再受到支持。 可使用迁移存储地理处理工具将要素类迁移至受支持的几何存储类型。

因为您无法通过 ArcGIS Pro 或使用在 ArcGIS Server 11.0 或更高版本中运行的工具创建使用此存储类型的要素类,所以新的地理数据库将不包含用于控制二进制几何存储的配置参数和关键字。 从使用 ArcGIS Pro 3.2 或随 ArcGIS Server 11.2 安装的工具创建的地理数据库开始,即适用上述情况。

如果您使用 ArcGIS Pro 3.1 或更早版本或随 ArcGIS Server 11.1 或更早版本安装的工具创建了地理数据库,则这些参数和关键字仍然存在(除非您将其移除);升级地理数据库不会将它们移除。

这些参数包括以 F_ 和 S_ 开头和以 _SHAPE 结尾的参数,以及涉及 SDEBINARY 的配置关键字。 如果您的组织中有多个版本的客户端,并且仍为地理数据库中的一些要素类使用二进制几何存储格式,请参阅 ArcGIS Desktop 帮助以了解有关压缩二进制几何存储配置参数的信息。