SQL Server DBTUNE 配置参数

配置参数存储在 sde_dbtune 表的 parameter_name 列中,用于确定要配置的数据库对象或表示特定设置。其对应值存储在 sde_dbtune 表的 config_string 列中,用于确定对象或设置的配置方式。这些参数及其配置字符串在 sde_dbtune 表中通过配置关键字组合在一起。关键字/参数名称的组合是唯一的,但大多数参数名称并不唯一,可在 sde_dbtune 表中的大量不同关键字下重复使用。

parameter_name 列中的有效值是固定不变的;您不能设计新的参数名称。同样,config_string 列只接受特定数值或 SQL 字符串。大多数情况下,这些字符串将被追加到 SQL CREATE TABLE 和 CREATE INDEX 语句中,因此它们必须与给定 DBMS 必需的 SQL 语法相匹配。

在存储于 Microsoft SQL Server 的地理数据库中,ArcGIS 通过 sde_dbtune 参数和该参数所对应的配置字符串来确定以下内容:

对配置参数进行分类的方法有多种。通常,一个参数可归属于多个类别。例如,可将 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 参数的信息,请参阅《SQL Server 联机丛书》。

A_INDEX_SHAPE

增加表(即 A 表)中空间列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

A_INDEX_STATEID

增加表(即 A 表)中 sde_state_id 列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

A_INDEX_USER

增加表(即 A 表)索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

A_INDEX_XML

增加表(即 A 表)中 XML 列索引表的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

A_MS_SPINDEX

为使用 SQL Server 2008 Geometry 存储类型的版本化要素类的增加表(即 A 表)定义空间索引

GRIDS = (MEDIUM, MEDIUM, MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16

要了解其他可能的值,请查阅有关空间索引创建的 SQL Server 文档。

仅适用于 SQL Server 空间类型(Geometry 或 Geography)

A_OUT_OF_ROW

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

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

0 或 1

只能用于 ArcGIS 10 或后续版本

A_STORAGE

增加表(即 A 表)的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

AUX_CLUSTER_COMPOSITE

主键的索引类型

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

AUX_INDEX_COMPOSITE

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

AUX_STORAGE

栅格 AUX 表的存储定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

B_INDEX_ROWID

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

B_INDEX_SHAPE

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

B_INDEX_TO_DATE

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

B_INDEX_USER

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

B_INDEX_XML

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

B_MS_SPINDEX

为使用 SQL Server 2008 Geometry 或 Geography 类型存储的要素类的业务表定义空间索引

GRIDS = (MEDIUM, MEDIUM, MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16

要了解其他可能的值,请查阅有关空间索引创建的 SQL Server 文档。

仅适用于 SQL Server 空间类型(Geometry 或 Geography)

B_OUT_OF_ROW

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

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

0 或 1

只能用于 ArcGIS 10 或后续版本

B_STORAGE

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

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

BLK_CLUSTER_COMPOSITE

主键的索引类型

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

BLK_INDEX_COMPOSITE

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

BLK_OUT_OF_ROW

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

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

0 或 1

只能用于 ArcGIS 10 或后续版本

BLK_STORAGE

栅格 BLK 表的存储定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

BND_INDEX_ID

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

BND_STORAGE

栅格 BND 表的存储定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

D_INDEX_DELETED_AT

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

D_STORAGE

删除表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

F_CLUSTER_FID

FID 列的索引类型

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

F_INDEX_AREA

要素表中面积列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB)

F_INDEX_FID

要素表中 FID 列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB)

F_INDEX_LEN

要素表中长度列索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

仅适用于二进制几何存储类型(SDEBINARY 和 SDELOB)

F_OUT_OF_ROW

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

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

0 或 1

只能用于 ArcGIS 10 或后续版本

F_STORAGE

要素表存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《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 表示存储在行内

只有要素类使用 GEOMETRY 或 GEOGRAPHY 存储类型并且启用了存储 CAD 实体的功能时才会创建 CAD 端表

GEOMTAB_PK

CAD 表中主键索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

只有要素类使用 GEOMETRY 或 GEOGRAPHY 存储类型并且启用了存储 CAD 实体的功能时才会创建 CAD 端表

GEOMTAB_STORAGE

CAD 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

只有要素类使用 GEOMETRY 或 GEOGRAPHY 存储类型并且启用了存储 CAD 实体的功能时才会创建 CAD 端表

I_STORAGE

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

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

LD_INDEX_ALL

SDE_logfile_data 和 SDE_logpool 表主键索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

LD_STORAGE

SDE_logfile_data 和 SDE_logpool 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

LF_INDEX_NAME

SDE_logfiles 唯一索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

LF_STORAGE

SDE_logfiles 表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

MVTABLES_MODIFIED_INDEX

Mvtables_modified 索引的存储定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

MVTABLES_MODIFIED_TABLE

Mvtables_modified 表的存储定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

RAS_STORAGE

栅格 RAS 表的存储定义

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

RASTER_STORAGE

定义栅格数据的存储类型

binary 或 ST_RASTER

S_CLUSTER_ALL

主键(表的所有列)的索引类型

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

S_CLUSTER_SP_FID

sp_fid 列索引的填充系数和位置(文件组)

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

S_INDEX_ALL

使用二进制几何类型存储时,空间索引表第一个索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

S_INDEX_SP_FID

空间索引表第二个索引的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

S_STORAGE

在 Oracle 和 SQL Server 数据库中,该参数表示空间索引表的存储方式定义;在 Informix 数据库中,则表示“智能 blob 空间”

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

SESSION_TEMP_TABLE

控制是否在 tempdb 中创建日志文件

1 或 0

如果设置为 1,则在 tempdb 中创建表。如果设置为 0,则不在 tempdb 中创建表。

STATES_INDEX

状态表的存储方式定义

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

STATES_LINEAGES_INDEX

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

STATES_LINEAGES_TABLE

State_lineages 表的存储定义

有关 CREATE TABLE 参数的信息,请参阅《SQL Server 联机丛书》。

STATES_TABLE

状态表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

VERSIONS_TABLE

版本表的存储方式定义

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

XML_DOC_MODE

XML 文档的存储类型

COMPRESSED 或 UNCOMPRESSED

XML_DOC_OUT_OF_ROW

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

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

0 或 1

只能用于 ArcGIS 10 或后续版本

XML_DOC_STORAGE

sde_xml_doc<n> 表的存储子句

有关 CREATE TABLE 参数的信息,请参阅《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 参数的信息,请参阅《SQL Server 联机丛书》。

XML_IDX_INDEX_ID

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

XML_IDX_INDEX_PK

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

XML_IDX_INDEX_STRING

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

XML_IDX_INDEX_TAG

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

有关 CREATE INDEX 参数的信息,请参阅《SQL Server 联机丛书》。

XML_IDX_OUT_OF_ROW

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

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

0 或 1

只能用于 ArcGIS 10 或后续版本

XML_IDX_STORAGE

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

有关 CREATE TABLE 参数的信息,请参阅《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 的存储信息,在执行存档操作期间更新历史记录表时使用该信息

注注:

此参数没有相应的增加表(即 A 表)参数。

B_MS_SPINDEX

为使用 SQL Server Geometry 类型进行矢量存储的要素类的业务表指定空间索引

ArcGIS 将自动计算要素类的边界框(也称为图层范围),但 CREATE SPATIAL INDEX 命令的其余选项仅在使用此参数和相应的添加表(即 A 表)参数 A_MS_SPINDEX 时可用。此参数的默认设置与 SQL Server 的默认设置相同。导出到 dbtune.sde 文件中时,此设置如下所示:

B_MS_SPINDEX "GRIDS = (MEDIUM, MEDIUM,MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16"

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_MS_SPINDEX

为使用 SQL Server Geometry 类型进行矢量存储的已版本化要素类的 A 表指定空间索引

ArcGIS 将自动计算要素类的边界框(也称为图层范围),但 CREATE SPATIAL INDEX 命令的其余选项仅在使用此参数和相应的业务表参数 B_MS_SPINDEX 时可用。此参数的默认设置与 SQL Server 的默认设置相同。导出到 dbtune.sde 文件中时,此设置如下所示:

A_MS_SPINDEX "GRIDS = (MEDIUM, MEDIUM,MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16"

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 中的二进制栅格以五个单独表的形式进行存储:波段表 (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"

还有另一类栅格表,即栅格属性表。此表(或这些表;可以存在多个此类表)存储栅格像元值的属性值。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 表示创建为非聚集索引)。聚集索引在其叶结点处存储表格数据。聚集索引叶级处的数据页根据聚集索引键值得出其排序顺序。对于 SDE_dbtune 表,必须遵循一条重要原则:不能将表同它所对应的聚集索引分开。例如,要素表应存储在 Feat 文件组中,您却指定在 FeatIdx 文件组中创建要素表的要素 ID (FID) 索引。FID 索引将被创建为聚集索引。SDE_dbtune 可能如下所示:

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 空间索引。定义此索引的参数为 B_MS_SPINDEX 和 A_MS_SPINDEX。在业务表参数部分和 A 表参数部分中分别对这两种参数进行了介绍。

用于存储文本的参数

行外文本参数

在 ArcSDE 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()
COLLATION_NAME 参数对于土耳其语排序规则用户尤其重要。为避免土耳其语字母表中字母“i”的大小写问题,使用土耳其语的用户应对 COLLATION_NAME 参数进行设置以表明他们正在使用土耳其语排序规则。

影响空间存储的参数

在“特定于索引的参数”一节中已对空间索引参数进行了论述。影响空间数据存储的其他参数包括 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 后,ArcSDE 将在 SRID 值的几何列中添加检查约束。此方法可确保在 ArcGIS 外部执行编辑操作的用户不会向同一表中添加多个 SRID。但请注意,将此参数设置为 TRUE 会对性能产生影响。考虑到这个原因,在没有用户使用 SQL(或者第三方软件)对注册到 ArcSDE 的空间表进行编辑的情况下,请不要将参数设置为 TRUE。

GEOMTAB_OUT_OF_ROW、GEOMTAB_PK 和 GEOMTAB_STORAGE

这三种参数决定了如何对可与存储类型为 SQL Server 几何或地理的要素类结合使用的 CAD 端表进行存储。这些端表是为可存储 CAD 实体(例如曲线)的要素类而创建的。通过 ArcGIS for Desktop 创建的所有要素类均被设置为存储 CAD 实体。如果使用 ArcSDE 管理命令将数据导入或注册到 ArcSDE,则可指定是否可将 CAD 数据存储在生成的要素类中。CAD 端表名称遵循的命名约定为 SDE_geometry<ID>,其中 ID 为 SDE_layers 表中关联要素类的 layer_id。

GEOMTAB_OUT_OF_ROW 参数用于指定 SDE_geometry<ID> 表中 CAD 列的数据是否可以存储在数据行中。由于数据行一行中最多可存储 8000 个字节,因此只有小于该上限的数据才能存储在行内,并且前提是 GEOMTAB_OUT_OF_ROW 参数设置为 0(禁用)。如果 GEOMTAB_OUT_OF_ROW 参数设置为 1(启用),则值将始终存储在数据行以外,而指向外部页面的 16 字节指针将存储在数据行内。

GEOMTAB_PK 参数用于为 SDE_geometry<ID> 表的主键索引指定填充系数。默认情况下,此参数设置为 WITH FILLFACTOR=75。

GEOMTAB_STORAGE 参数用于为 SDE_geometry<ID> 表指定文件组位置。可使用关键字 ON 来指定位置,例如 ON cad_fg。

用于 XML 文档存储的参数

注注:

如果您在地理数据库中不使用 XML 列和 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 文档索引表具有更多的 SDE_dbtune 参数;这些参数均以 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,数据库将对更改内容进行追踪并自动更新索引。

建议您使用 SDE_dbtune 表中提供的默认设置。如果服务器无法完成其工作量并且您只能更改索引建立方式,则请将更改追踪功能设置为手动 (CHANGE_TRACKING MANUAL)。

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

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

ArcGIS 通过日志文件表对临时性和永久性的所选记录集进行维护。

日志文件参数将对日志文件数据表和索引产生影响。其中的大多数参数以字母 L 开头。如下表所示:

参数

描述

LD_INDEX_ALL

定义 SDE_logfile_data 和 SDE_logpool 表主键的存储方式

LD_STORAGE

定义 SDE_logfile_data 表和 SDE_logpool_<sde_id> 表的配置

LF_CLUSTER_ID

SDE_logfiles 主键的索引类型

LF_CLUSTER_NAME

SDE_logfiles 表中日志文件名称列的唯一索引的索引类型。

LF_INDEX_ID

定义 SDE_logfiles 主键的存储方法。

LF_INDEX_NAME

定义 SDE_logfiles 唯一索引的存储方法。

LF_STORAGE

定义 SDE_logfiles 表的配置

SESSION_TEMP_TABLE

控制是否在 tempdb 数据库中创建会话日志文件表和独立日志文件表;默认情况下,此参数设置为 1,表示在 tempdb 中创建会话日志文件和独立日志文件。

对于 SQL Server 中的日志文件配置,建议设置为在 tempdb 数据库中创建会话日志文件表。因为每次登录都有权在 tempdb 中创建对象,因此不需要特定的 CREATE TABLE 权限。将日志文件表用作临时表可将事务日志的一部分工作量转移到 tempdb 数据库。Tempdb 只有在回滚事务时需要使用事务日志,而恢复操作并不需要,因此与常规数据库相比,Tempdb 数据库记录表事务的效率更高。因为临时表在会话断开连接时会被删除,因此临时表存储不会带来永久性的开销。如果您有多个处于活动状态的地理数据库,它们可以同时使用 tempdb 来存储日志文件。当您对各个实例进行配置以使其通过不同方式使用日志文件时,应注意检查 tempdb 的活动,查看数据库是否变热并导致 I/O 性能瓶颈。可轻松地将 tempdb 数据库移至其他磁盘卷,并且不需要像管理其他数据库那样来进行恢复;例如,tempdb 数据库不需要位于 RAID 卷中。有关管理 tempdb 数据库的详细信息,请参阅《SQL Server 联机丛书》。

有关 ArcSDE 日志文件表的信息,请参阅有关 SQL Server 的 ArcSDE 日志文件表配置选项

其他配置参数

有些参数无法进行准确归类。本部分将介绍这些参数。

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,则所有游标键集将异步生成。如果将参数设置为 O 和 -1 之外的其他值,则 SQL Server 查询优化器会将游标集中的预期行数与游标阈值中设置的数值进行对比,如果超出阈值,那么以异步方式构建键集。异步填充表示在填充游标期间您可以对游标中已存在的行进行访问。而对于同步填充,只有所有行都填充至游标后,才可以进行访问。

注注:

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

PERMISSION_CACHE_THRESHOLD

通过“目录”窗口连接至地理数据库或者按下 ArcMap 中的“添加数据”按钮时,一定会生成一个列表以指示您有权访问的数据集。要获取此列表,请通过 ArcGIS 对 SQL Server 系统信息进行查询。对于对象和用户数量较多的数据库,构建一个特定于连接用户的系统信息的临时副本可显著提高运行速度。

如果对象权限信息的初始查询值超出阈值,则 PERMISSION_CACHE_THRESHOLD 将自动构建临时表。(默认阈值为 250 毫秒,最大值为 1000 毫秒。)

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

如果您使用的是 ArcSDE 9.2 Service Pack 2 或更高版本,则禁用 PERMISSION_CACHE_THRESHOLD 时,您会发现性能将有所提升。现已对用于获取权限信息的查询进行了改进,并且无需使用临时缓存。要禁用临时表创建功能,请在 SDE_dbtune 表中将 PERMISSION_CACHE_THRESHOLD 设置为 -1。

用户界面参数

用户界面参数以 UI 开头,用于指示其关联配置关键字在 ArcGIS 用户界面和 ArcObjects 中是否可用。UI_TEXT 用于非复合配置关键字。UI_TOPOLOGY_TEXT 用于拓扑关键字。UI_TERRAIN_TEXT 用于 terrain 关键字。UI_NETWORK_TEXT 用于网络关键字。有关如何使用 UI 参数的详细信息,请参阅使配置关键字在 ArcGIS 中可用

9/15/2013