配置参数标识要配置的数据库对象。其对应值用于标识在数据库中存储对象的方式。这些参数及其配置字符串将通过配置关键字组合在一起。
在存储于 Microsoft SQL Server 的地理数据库中,ArcGIS 使用配置参数及其相应的配置字符串来定义数据存储的方式。以下列出了不同参数可用的存储设置:
- 表或索引的创建位置(文件组)
- 是否对索引进行聚集
- 各个索引页的填充比例 (FILLFACTOR)
- 数据页行内应存储的二进制数据量 (OUT_OF_ROW)
- 字符数据的存储方式
- XML 文档的存储方式和索引建立方式
- 使用哪种类型的日志文件表
- 使用户可以在 ArcGIS 界面中使用关键字。
- 使用哪种格式存储空间数据
- 提供描述配置关键字的注释。
对配置参数进行分类的方法有多种。通常,一个参数可归属于多个类别。例如,可将 B_CLUSTER_RASTER 参数归类为业务表参数、栅格参数或聚集索引参数。
下表按字母顺序列出了所有可在 SQL Server 中的地理数据库内使用的配置参数。在随后的部分中,本文档按照功能上的相关性对参数进行了粗略分组并给出了更深入的解释。
参数名称 | 说明 | 值 | 注意事项 |
---|---|---|---|
A_CLUSTER_RASTER | 增加表(即 A 表)中栅格列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_CLUSTER_ROWID | 增加表(即 A 表)中 rowid 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_CLUSTER_SHAPE | 增加表(即 A 表)中 shape 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_CLUSTER_STATEID | 增加表(即 A 表)中 stated 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_CLUSTER_USER | 增加表(即 A 表)中任何用户定义索引的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_CLUSTER_XML | 增加表(即 A 表)中 xml doc 类型列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_INDEX_RASTER | 增加表(即 A 表)中栅格列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
A_INDEX_ROWID | 增加表(即 A 表)中对象 ID 列索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
A_INDEX_SHAPE | 增加表(即 A 表)中空间列索引的存储方式定义 | 有关 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 | 业务表中栅格列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
B_CLUSTER_ROWID | 业务表中 rowid 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
B_CLUSTER_SHAPE | 业务表中 shape 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
B_CLUSTER_TO_DATE | 指定针对启用存档的表的历史记录表中 to_date、archive_rowid 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
B_CLUSTER_USER | 业务表中任何用户定义索引的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
B_CLUSTER_XML | 业务表中 xml doc 类型列的索引类型 | 1 或 0;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_SHAPE | 业务表中空间列索引的存储方式定义 | 有关 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 | 主键的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
BND_CLUSTER_ID | RASTER_ID 和 SEQUENCE_NBR 列的索引类型 | 1 或 0;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 个字符 | |
CROSS_DB_QUERY_FILTER | 控制连接用户是否可以跨数据库界限查看栅格或要素类;仅与多重空间数据库模型结合使用 | 1 或 0 1 表示只能对已显式连接的数据库中的数据进行查看和访问 0 表示可以在多重空间数据库内访问其他数据库中的数据 | |
D_CLUSTER_ALL | SDE_STATES_ID、SDE_DELETES_ROW_ID 和 DELETED_AT 列的索引类型 | 1 或 0;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 文档。 | |
F_CLUSTER_FID | FID 列的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
F_INDEX_AREA | 要素表中面积列索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | 仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB) |
F_INDEX_FID | 要素表中 FID 列索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | 仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB) |
F_INDEX_LEN | 要素表中长度列索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | 仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB) |
F_OUT_OF_ROW | 用于确定对于要素 (f) 表中的 varbinary(max) 列,将数据存储在行内还是行外 如果设置为 0,可以直接在表格的数据页存储多达 8000 个字节。如果设置为 1,数据将始终存储在行外。 | 0 或 1 | |
F_STORAGE | 要素表存储方式定义 | 有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。 | 仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB) |
GEOMETRY_STORAGE | 指示空间列的存储类型 将 SQL Server 的存储参数设置为 SDEBINARY、OGCWKB、GEOGRAPHY 或 GEOMETRY。 | GEOMETRY、SDEBINARY、OGCWKB 或 GEOGRAPHY | |
GEOM_SRID_CHECK | 向 SRID 值的几何列添加检查约束 | TRUE 或 FALSE | |
GEOMTAB_OUT_OF_ROW | 指定是否将小于 8000 字节的 xml 列 varchar(max)、nvarchar(max) 和 varbinary(max) 存储于 CAD 端表的数据行内 | 1 或 0 1 表示存储在行外,0 表示存储在行内 | |
GEOMTAB_PK | CAD 表中主键索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
GEOMTAB_STORAGE | CAD 表的存储方式定义 | 有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
I_STORAGE | 定义用于生成 ID 的 i 表的存储。 | 有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
LD_INDEX_ALL | SDE_logfile_data 和 SDE_logpool 表主键索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
LD_STORAGE | SDE_logfile_data 和 SDE_logpool 表的存储方式定义 | 有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
LF_CLUSTER_ID | SDE_logfiles 主键的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
LF_CLUSTER_NAME | SDE_logfiles 表中日志文件名列的唯一索引的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
LF_INDEX_ID | SDE_logfiles 主键的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
LF_INDEX_NAME | SDE_logfiles 唯一索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
LF_STORAGE | SDE_logfiles 表的存储方式定义 | 有关 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,则不缓存权限。 | 0-1,000 250 | |
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 | 定义栅格数据的存储类型 | rasterblob、二进制或 ST_RASTER | |
S_CLUSTER_ALL | 主键(表的所有列)的索引类型 | 1 或 0;1 = 聚集,0 = 非聚集 | |
S_CLUSTER_SP_FID | sp_fid 列索引的填充系数和位置(文件组) | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
S_INDEX_ALL | 使用二进制几何类型存储时,空间索引表第一个索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
S_INDEX_SP_FID | 空间索引表第二个索引的存储方式定义 | 有关 CREATE INDEX 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
S_STORAGE | 在 Oracle 和 SQL Server 数据库中,该参数表示空间索引表的存储方式定义;在 Informix 数据库中,则表示“智能 blob 空间” | 有关 CREATE TABLE 参数的信息,请参阅 Microsoft SQL Server 文档。 | |
SESSION_TEMP_TABLE | 控制是否在 tempdb 中创建日志文件 | 1 或 0 如果设置为 1,则在 tempdb 中创建表。如果设置为 0,则不在 tempdb 中创建表。 | |
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 个字符 | |
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 路径索引 | 0 或 1 0 表示不创建路径索引,1 表示创建路径索引。 | |
XML_COLUMN_PRIMARY_IDX | 确定是否创建 XML 主索引 | 0 或 1 0 表示不创建主索引,1 表示创建主索引 | |
XML_COLUMN_PROPERTY_IDX | 确定是否创建 XML 属性索引 | 0 或 1 0 表示不创建属性索引,1 表示创建属性索引 | |
XML_COLUMN_SCHEMA | 指定用于验证的 XML 模式 | XML 模式集合名称,至多 128 个字符 | |
XML_COLUMN_STORAGE | 指定要创建的 XML 列的类型:ArcSDE XML 或原生 DBMS XML | DB_XML 或 SDE_XML DB_XML 是 DEFAULTS 关键字的默认值。SDE_XML 是 IMS_GAZETTEER 关键字的默认值。 | |
XML_COLUMN_TYPE | 指定列可以存储的 XML 文档类型 | CONTENT 或 DOCUMENT | 如果每个 XML 实例仅有一个顶级元素,则将此参数更改为 DOCUMENT |
XML_COLUMN_VALUE_IDX | 确定是否创建 XML 值索引 | 0 或 1 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 索引进行聚集的存储子句 | 1 或 0;1 = 聚集,0 = 非聚集 | |
XML_IDX_CLUSTER_ID | 指示是否对 sde_xml_idx<n> 表中 id 列的 xmlix<n>_id 索引进行聚集的存储子句 | 1 或 0;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 索引进行聚集的存储子句 | 1 或 0;1 = 聚集,0 = 非聚集 | |
XML_IDX_CLUSTER_TAG | 指示是否对 sde_xml_idx<n> 表中 tag_id 列的 xmlix<n>_tg 索引进行聚集的存储子句 | 1 或 0;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 开头,用于定义业务表及其索引的存储类型。参数如下:
参数 | 说明 |
---|---|
B_CLUSTER_ROWID | 业务表中行 ID(对象 ID)列的索引类型;0 表示非聚集索引,1 表示聚集索引 |
B_CLUSTER_SHAPE | 业务表中 shape 列的索引类型 如果设置为 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_SHAPE | 为业务表中 shape 列的索引定义填充系数和位置(文件组)。要指定文件组,请使用 SQL ON 语句,例如: B_INDEX_SHAPE "with fillfactor=99 ON SHAPEfg" |
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 的存储信息,在执行存档操作期间更新历史记录表时使用该信息 |
B_OUT_OF_ROW | 值为 0 或 1 如果设置为 0,直接在表格的数据页存储多达 8000 个字节。 如果设置为 1,数据始终存储在行外。 |
B_STORAGE | 业务表的文件组位置 可使用 ON 来控制位置,例如: B_STORAGE "ON ADDS_FG" |
对于非空间业务表,请执行以下操作之一:
- 将 B_CLUSTER_ROWID 参数的 config_string 改为 1,将 B_CLUSTER_SHAPE 参数的 config_string 改为 0。通过此操作可为对象 ID 字段创建聚集索引。后续创建的所有用户定义索引都将为非聚集索引。
- 将 B_CLUSTER_USER 参数的 config_string 改为 1。ArcGIS 创建的第一个用户定义索引将为聚集索引。将 B_CLUSTER_SHAPE 改为 0。
- 创建数据并更改要进行聚集的索引(或复合索引)。
A 表参数
A 表用于存储版本化地理数据库中要素类所插入和更新的内容。A 表在结构上与业务表几乎相同,只是多了用于追踪状态 ID 的列。增加表(即 A 表)参数以字母 A 开头。A 表参数如下:
参数 | 说明 |
---|---|
A_CLUSTER_ROWID | A 表中行 ID 列的索引类型 如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。 |
A_CLUSTER_SHAPE | A 表中 shape 列的索引类型 如果设置为 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_SHAPE | 为 A 表中 shape 列的索引指定填充系数和位置(文件组) 要指定文件组,请使用 SQL ON 语句,例如: A_INDEX_SHAPE "with fillfactor=99 ON SHAPEfg" |
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" |
非空间表没有 shape 列,因此应对其他某种类型的索引进行聚集。
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" |
要素表参数
要素表仅与使用二进制存储类型(SDEBINARY 或 OGCWKB)的要素类结合使用。要素表存储了各个形状的范围和几何。同时也包含对版本化插入和更新内容的记录。所有要素表参数都以字母 F 开头。
参数 | 说明 |
---|---|
F_CLUSTER_FID | 要素 ID 列的索引类型 如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。 |
F_INDEX_AREA | 为面积列的索引指定填充系数和位置(文件组),例如: F_INDEX_AREA "WITH FILLFACTOR = 90 ON F_IDX" |
F_INDEX_FID | 为要素 ID 列的索引指定填充系数和位置(文件组),例如: F_INDEX_FID "WITH FILLFACTOR = 90 ON F_IDX" |
F_INDEX_LEN | 为长度列的索引指定填充系数和位置(文件组),例如: F_INDEX_LEN "With FILLFACTOR = 90 ON F_IDX" |
F_STORAGE | f 表的文件组位置 可使用 ON 来控制位置,例如: F_STORAGE "WITH FILLFACTOR=90 ON F_IDX" |
F_OUT_OF_ROW | 值为 0 或 1 如果设置为 0,直接在表格的数据页存储多达 8000 个字节。 如果设置为 1,数据始终存储在行外。 |
栅格表参数
ArcGIS 中的二进制和 rasterblob 栅格(均为 BLOB 存储类型)存储为五个独立表:波段表 (SDE_bnd_#)、块表 (SDE_blk_#)、栅格表 (SDE_ras_#)、辅助表 (SDE_aux_#) 和业务表。ST_Raster 列存储在业务表以及两个支持表中的 ST_Raster 类型列中,这两个支持表分别为辅助表和块表。
栅格可作为要素类中的嵌入式目录或列进行存储,也可以存储为独立的数据集。
栅格表参数以 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 | 定义要使用的栅格数据存储类型:
*ArcGIS 10.4.1 和较早版本的客户端无法创建或访问使用此存储类型的栅格数据集或镶嵌数据集。 |
还有另一类栅格表,即栅格属性表。此表(或这些表;可以存在多个此类表)存储栅格像元值的属性值。B_STORAGE 参数定义这些表的存储方式。如果需要为这些表定义不同于其他要素类业务表的存储位置,请确保创建一个可在创建栅格数据集和栅格目录时使用的栅格关键字(该关键字指定栅格属性表的各种存储信息)。
要了解有关栅格属性表的详细信息,请参阅栅格数据集属性表。
特定于索引的参数
填充系数参数
此类参数的结构为 *_INDEX_*。用于指定索引的 FILLFACTOR 参数。FILLFACTOR 参数指定索引中每个叶级页面的填充程度。SQL Server 的 FILLFACTOR 参数默认值为 0,这表示索引的叶级页面几乎都处于填满状态,但非叶级页面至少具有两行以上的填充空间。用户定义的填充系数可介于 1 到 100 之间。如果填充系数为 100,则所有页面都处于完全填满状态。填充系数为 75 时,表明各个聚集索引页的填充度为 75%。后续插入和更新到数据中的内容将增加到索引页。当页面容量达到 100% 时,表明已处于填满状态。此后,对数据执行任何插入或更新操作都将造成页拆分。可通过 FILLFACTOR 来保持饱和索引页与页拆分之间的平衡。对某个页面进行拆分时,SQL Server 将被拆分页面中约 50% 的数据转移至一个新页面中,此新页面通常是从其他范围中分配出来的。页拆分会产生表碎片并影响性能。FILLFACTOR 值设置过低会创建过多的数据页面和范围,导致无法在查询时进行遍历,因而也会对性能产生负面影响。以下内容为选择填充系数的判定条件:
- 您的数据是否为只读? 是否始终不会对其进行编辑?如果回答是肯定的,则请将数据的所有填充系数设置为 100。
- 您会经常对数据进行更新吗? 使用默认值。
- 您是否只是偶尔更新数据? 根据您对表进行碎片整理的频率,选择一个介于 75% 至 95% 范围之间的参数值。
可使用 sys.dm_db_index_physical_stats 对产生碎片的表和页拆分进行检测监视。
聚集索引参数
此类参数的结构为 *_CLUSTER_*,用于指示是否将某个特定索引创建为聚集索引(1 表示创建为聚集索引,0 表示创建为非聚集索引)。聚集索引在其叶结点处存储表格数据。聚集索引叶级处的数据页根据聚集索引键值得出其排序顺序。对于配置参数,必须遵循一条重要原则:不能将表同它所对应的聚集索引分开。例如,要素表应存储在 Feat 文件组中,您却指定在 FeatIdx 文件组中创建要素表的要素 ID (FID) 索引。FID 索引将被创建为聚集索引。配置设置可能如下所示:
keyword | parameter_name | config_string |
---|---|---|
DEFAULTS | F_INDEX_FID | WITH FILLFACTOR=90 ON FEATIDX |
DEFAULTS | F_STORAGE | ON FEAT |
上述示例中,要素表和要素表的索引都将位于 FeatIdx 文件组中。首先创建要素表,然后对 FID 列应用主键约束。主键约束通过以下语句在 FID 列上创建聚集索引并引用 FEATIDX 文件组:
ALTER TABLE features.dbo.f4
ADD CONSTRAINT f4_pk PRIMARY KEY CLUSTERED (fid)
WITH FILLFACTOR=75
ON FEATIDX
因此,ON FEAT 配置字符串是冗余的,因为索引是在创建表之后进行创建,而 F_INDEX_FID 配置字符串会覆盖 F_STORAGE 字符串。在接下来的示例中,为要素表而非要素表的索引指定文件组。
keyword | parameter_name | config_string |
---|---|---|
DEFAULTS | F_INDEX_FID | WITH FILLFACTOR=90 |
DEFAULTS | F_STORAGE | ON FEAT |
在此示例中,要素表和 FID 列的聚集索引都将位于 Feat 文件组中。出现此种情况的原因是:首先对表进行创建,而在之后应用 ALTER TABLE 语句时,由于之前的 config_string 列中未列出类似 ON 语句的字符串,因此不会追加任何 ON 语句。
ALTER TABLE features.dbo.f5
ADD CONSTRAINT f5_pk PRIMARY KEY CLUSTERED (fid)
WITH FILLFACTOR=75
空间索引参数
二进制数据的空间索引是一种对要素进行叠加的格网,用于识别要提取的要素。依据空间索引表对空间查询的边界框进行叠加,从而选择满足查询的候选形状。空间索引表参数仅用于使用二进制存储类型(SDEBINARY 或 OGCWKB)的数据集。这些参数以 S 开头。
参数 | 说明 |
---|---|
S_CLUSTER_ALL | 主键(表的所有列)的索引类型 如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。 |
S_CLUSTER_SP_FID | sp_fid 列的索引类型 如果设置为 0,将创建非聚集索引。如果设置为 1,将创建聚集索引。 |
S_INDEX_ALL | 为主键索引指定填充系数和位置(文件组),例如: S_INDEX_ALL "With FILLFACTOR = 90 ON S_IDX" |
S_INDEX_SP_FID | 为 sp_fid 列索引指定填充系数和位置(文件组),例如: S_INDEX_SP_FID "WITH FILLFACTOR = 85 ON S_IDX" |
S_STORAGE | 为 S 表指定文件组位置 可使用关键字 ON 来控制位置,例如: S_STORAGE "WITH FILLFACTOR=95 ON S_IDX" |
使用 SQL Server 几何或地理存储类型的数据集的空间索引参数使用默认 Microsoft 空间索引。对于将兼容性级别设置为 100 的 SQL Server 数据库,使用 MEDIUM 格网大小创建空间索引。对于将兼容性级别设置为 110 或更高级别的 SQL Server 数据库,将自动格网用于业务表和添加表上的空间索引。
用于存储文本的参数
行外文本参数
在 ArcGIS 10 或更高版本的地理数据库中创建的新的二进制空间列或栅格列使用 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()
影响空间存储的参数
在“特定于索引的参数”一节中已对空间索引参数进行了论述。影响空间数据存储的其他参数包括 GEOMETRY_STORAGE 和 GEOM_SRID_CHECK。
GEOMETRY_STORAGE
SQL Server 中的地理数据库可使用四种空间数据存储格式,GEOMETRY_STORAGE 参数用于指示将使用其中哪种几何存储方法。GEOMETRY_STORAGE 参数具有以下值:
- Microsoft SQL Server 几何类型 - Microsoft 的一种空间类型,用于管理在任意平面上由坐标定义的空间数据(无需考虑地球曲率)。从 ArcGIS 10.1 开始,这是 SQL Server 中地理数据库的默认空间存储方法。如果您要以这种格式来存储空间数据,请将 GEOMETRY_STORAGE 参数设置为 GEOMETRY。如果未设置 GEOMETRY_STORAGE 参数,则假定为 GEOMETRY 类型。
- Microsoft SQL Server Geography 类型 - Microsoft 的一种空间类型,用于管理由经度/纬度坐标定义的空间数据。如果您的要素跨越较大区域且需要考虑地球曲率,请使用此类型。如果您要将此格式设置为地理数据库的默认存储类型,请在 DEFAULTS 配置关键字参数列表下方将 GEOMETRY_STORAGE 参数设置为 GEOGRAPHY。
- ArcSDE 压缩二进制格式 (SDEBINARY) - 此存储类型使用二进制存储机制存储要素几何。如果您要将此格式设置为地理数据库的默认存储类型,请在 DEFAULTS 配置关键字参数列表下将 GEOMETRY_STORAGE 参数设置为 SDEBINARY。
- OGC 熟知二进制几何类型 (OGCWKB) - 这种存储类型将几何表示为连续的字节流形式。如果您要以这种格式来存储空间数据,请将 GEOMETRY_STORAGE 参数设置为 OGCWKB。如果您要将此格式设置为默认格式,请在 DEFAULTS 配置关键字中将 GEOMETRY_STORAGE 参数设置为 OGCWKB。请注意,OGC 熟知二进制表示仅支持简单 2D 几何。
如果数据库中的所有要素类使用同一种几何存储方法,则在 DEFAULTS 配置关键字中对 GEOMETRY_STORAGE 参数设置一次即可。
GEOM_SRID_CHECK
如果您在 ArcGIS 中创建使用 SQL Server 几何存储类型的要素类,或者使用 SQL 创建具有 SQL Server 几何列的空间表并将该表注册到地理数据库中,则该表中的所有记录必须使用相同的空间参考 ID (SRID)。
DBMS 并不强制表中的所有记录共有一个 SRID。因此,如果您计划使用 SQL 来编辑具有 SQL Server 几何列且已注册到地理数据库中的表,建议您将 GEOM_SRID_CHECK 参数设置为 TRUE。将该参数设置为 TRUE 后,ArcGIS 将在 SRID 值的几何列中添加检查约束。此方法可确保在 ArcGIS 外部执行编辑操作的用户不会向同一表中添加多个 SRID。但请注意,将此参数设置为 TRUE 会对性能产生影响。考虑到这个原因,在没有用户使用 SQL(或者第三方软件)对注册到地理数据库的空间表进行编辑的情况下,请不要将参数设置为 TRUE。
用于 XML 文档存储的参数
包含 ArcSDE XML (SE_XML_TYPE) 列的表将采用两个端表在已建立索引的文档中存储 XML 文档和各个元素的内容。存储原生 SQL Server XML 列时,不使用端表。
XML_COLUMN_STORAGE 参数会确定是以 ArcSDE XML 方式,还是以原生 SQL Server XML 方式创建 XML 列。默认设置为使用 SQL Server XML (DB_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 文档索引表具有更多配置参数;这些参数均以 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 进行重命名,必须对此参数的配置字符串进行更新。
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 通过日志文件表对临时性和永久性的所选记录集进行维护。
从 ArcGIS 10.5 客户端开始,无论在 SQL Server 中的地理数据库内如何设置日志文件参数,将始终在 tempdb 中创建会话日志文件表。
其他配置参数
有些参数无法进行准确归类。本部分将介绍这些参数。
CROSS_DB_QUERY_FILTER 参数
CROSS_DB_QUERY_FILTER 参数可设置为 0 或 1。此参数仅适用于多数据库模型(其中 SDE 数据库存储地理数据库资料档案库,而其他数据库存储用户定义的数据)。默认情况下,CROSS_DB_QUERY_FILTER 设置为 0。CROSS_DB_QUERY_FILTER 用于控制连接用户是否可以跨数据库界限来查看栅格或要素类。在多重空间数据库类型的地理数据库中,无论您连接的是哪个数据库,都可以对任何参与地理数据库的数据库中的栅格和要素类进行访问。CROSS_DB_QUERY_FILTER 设置为 1 时,只能查看和访问您所显式连接的数据库中的栅格和要素类。例如,假定某个多数据库地理数据库由 SDE 数据库、渔业数据库、分水岭数据库和海岸数据库组成,如果 CROSS_DB_QUERY_FILTER 设置为 1,则连接至渔业数据库的用户将无法查看到分水岭数据库中的栅格或要素类。在这种情况下,建议您将数据从多重空间数据库迁移到单个数据库地理数据库中。因为在单个数据库模型地理数据库中,不使用 CROSS_DB_QUERY_FILTER。
NUM_DEFAULT_CURSORS 参数
NUM_DEFAULT_CURSORS 参数用于控制 SQL Server 游标阈值。此参数指定了将异步生成游标键集的游标集中的行数。默认值为 -1,表示所有键集将同步生成,这种设置适合较小的游标集。如果将参数设置为 0,则所有游标键集将异步生成。如果将参数设置为 0 和 -1 之外的其他值,则 SQL Server 查询优化器会将游标集中的预期行数与游标阈值中设置的数值进行对比,如果超出阈值,那么以异步方式构建键集。异步填充表示在填充游标期间您可以对游标中已存在的行进行访问。而对于同步填充,只有所有行都填充至游标后,才可以进行访问。
PERMISSION_CACHE_THRESHOLD
通过“目录”窗口连接至地理数据库或者按下 ArcMap 中的“添加数据”按钮时,一定会生成一个列表以指示您有权访问的数据集。要获取此列表,请通过 ArcGIS 对 SQL Server 系统信息进行查询。对于对象和用户数量较多的数据库,构建一个特定于连接用户的系统信息的临时副本可显著提高运行速度。
如果对象权限信息的初始查询值超出阈值,则 PERMISSION_CACHE_THRESHOLD 将自动构建临时表。(默认阈值为 250 毫秒,最大值为 1000 毫秒。)
PERMISSION_CACHE_THRESHOLD 仅在 DEFAULTS 参数组中使用。临时表只在连接期间存在,因此如果在会话期间用户权限发生更改,那么用户只有断开连接并重新连接至数据库,才能查看到更改内容。
如果您使用的是 ArcGIS 9.2 Service Pack 2 或更高版本,则禁用 PERMISSION_CACHE_THRESHOLD 时,您会发现性能将有所提升。现已对用于获取权限信息的查询进行了改进,并且无需使用临时缓存。要禁用临时表创建功能,请将 PERMISSION_CACHE_THRESHOLD 设置为 -1。
用户界面参数
用户界面参数以 UI 开头,用于指示其关联配置关键字在 ArcGIS 用户界面和 ArcObjects 中是否可用。UI_TEXT 用于非复合配置关键字。UI_TOPOLOGY_TEXT 用于拓扑关键字。UI_TERRAIN_TEXT 用于 terrain 关键字。UI_NETWORK_TEXT 用于网络关键字。需要 UI 参数的默认配置关键字已具备 UI 参数。仅在创建您自己的自定义关键字时才需要添加这些参数的其中之一。