PostgreSQL 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 语法相匹配。
在存储于 PostgreSQL 数据库的地理数据库内,ArcSDE 使用“参数名称-配置字符串”对执行以下操作:
- 建立表和索引的存储特征。
- 定义索引的填充系数
- 定义空间列和栅格列的存储类型
- 定义 XML 文档的存储方式。
- 使用户可以在 ArcGIS 界面中使用关键字。
- 提供描述配置关键字的注释。
默认情况下,PostgreSQL 在数据库的默认表空间中存储表和索引。要在其他表空间中存储表和索引,超级用户需要创建其他表空间并为将在其中创建对象的用户授予 CREATE 权限。可使用 psql 元命令 \db+ 列出现有表空间及其权限。
完成此配置后,可使用 sde_dbtune 存储参数指定用于存储各种表的不同表空间。
用于指定表空间存储的语法因参数而异。随 ArcSDE for PostgreSQL 一同安装的 dbtune.sde 文件针对各个参数提供了带注释的示例条目,有助于您正确使用语法。
PostgreSQL 中的表空间使用符号链接;因此,用户定义的表空间只能在支持符号链接的系统上使用。
下表按字母顺序列出了所有可在 PostgreSQL 中的地理数据库内使用的配置参数。之后是对参数的详细解释(按其功能分组)。
参数名称 |
描述 |
值 |
---|---|---|
A_INDEX_ROWID |
A 表中对象 ID 列索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
A_INDEX_STATEID |
A 表中 sde_state_id 列索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
A_INDEX_USER |
A 表索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
A_INDEX_XML |
A 表中 XML 列索引表的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
A_STORAGE |
A 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
AUX_INDEX_COMPOSITE |
栅格 AUX 表复合列索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
AUX_STORAGE |
栅格 AUX 表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
B_INDEX_RASTER |
业务表中栅格列索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
B_INDEX_ROWID |
业务表中对象 ID 列索引和栅格 rowid 索引 R<N>_SDE_ROWID_UK 的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
B_INDEX_TO_DATE |
用于创建索引 r<registration_id>_sde_todate 的存储参数信息,存档操作期间对历史记录表进行更新时将使用该信息 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
B_INDEX_USER |
业务表用户索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
B_INDEX_XML |
业务表中 XML 列索引表的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
B_STORAGE |
业务表和栅格属性表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
BLK_INDEX_COMPOSITE |
栅格 BLK 表复合列索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
BLK_STORAGE |
栅格 BLK 表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
BND_INDEX_COMPOSITE |
栅格 BND 表复合列索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
BND_INDEX_ID |
栅格 BND 表 RID 列索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
BND_STORAGE |
栅格 BND 表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
COMMENT |
用于添加注释的行 |
最多可容纳 2048 个字符长的注释 |
D_INDEX_ALL |
sde_states_id、sde_deletes_row_id 和 deleted_at 列索引的填充系数 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
D_INDEX_DELETED_AT |
D 表 sde_deleted_at 列索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
D_STORAGE |
D 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
GEOMETRY_STORAGE |
指示空间列的存储数据类型 |
ST_GEOMETRY 或 PG_GEOMETRY |
LD_INDEX_ALL |
Sde_logfile_data 和 sde_logpool 表主键的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
LD_STORAGE |
Sde_logfile_data 和 sde_logpool 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
LF_INDEX_ID |
Sde_logfile 主键的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
LF_INDEX_NAME |
sde_logfiles 唯一索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
LF_STORAGE |
Sde_logfiles 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
MVTABLES_MODIFIED_INDEX |
Mvtables_modified 索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
MVTABLES_MODIFIED_TABLE |
Mvtables_modified 表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
RAS_INDEX_ID |
栅格 RAS 表 RID 索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
RAS_STORAGE |
栅格 RAS 表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
RASTER_STORAGE |
定义栅格数据的存储类型 |
binary 或 ST_Raster |
SESSION_INDEX |
基于 ArcSDE 会话的日志文件索引和独立日志文件索引的存储定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
SESSION_STORAGE |
基于 ArcSDE 会话的日志文件表和独立日志文件表的存储定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
SESSION_TEMP_TABLE |
控制是否在 tempdb 中创建日志文件 |
1 or 0 此参数存在但在 PostgreSQL 中当前并未使用。 |
STATES_INDEX |
状态表的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
STATES_LINEAGES_INDEX |
控制 sde_state_lineages 表主键索引的存储方式 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
STATES_LINEAGES_TABLE |
Sde_state_lineages 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
STATES_TABLE |
Sde_states 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
UI_NETWORK_TEXT |
用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包括网络配置的描述 |
描述不能超过 2048 个字符 |
UI_TERRAIN_TEXT |
用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包括 terrain 配置的描述 |
描述不能超过 2048 个字符 |
UI_TEXT |
用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包含相关的非复合配置关键字的描述 |
描述不能超过 2048 个字符 |
UI_TOPOLOGY_TEXT |
用户界面参数,用于指示将在 ArcGIS 用户界面中显示的相关配置关键字;包括拓扑配置的描述 |
描述不能超过 2048 个字符 |
VERSIONS_INDEX |
Sde_versions 索引的存储方式定义 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
VERSIONS_TABLE |
Sde_versions 表的存储方式定义 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
XML_COLUMN_STORAGE |
用于指定要创建的 XML 列的类型:ArcSDE XML 类型或原生 DBMS XML 类型 |
SDE_XML or DB_XML |
XML_DOC_INDEX |
sde_xml_doc<n> 表中 xmldoc<n>_pk 索引和 xml_doc<n>_ix 索引的存储子句 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
XML_DOC_STORAGE |
sde_xml_doc<n> 表的存储子句 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
XML_DOC_UNCOMPRESSED_TYPE |
确定 XML 文档的存储格式 |
BINARY 或 TEXT |
XML_IDX_FULLTEXT_UPDATE_METHOD |
指定如何将 sde_xml_doc<n> 表(XML 文档表)中 xml_doc_val 列的更改内容和 sde_xml_idx<n> 表(XML 列的索引表)中 text_tag 列的更改内容传递至全文索引 |
AUTOMATIC 或 MANUAL |
XML_IDX_INDEX_DOUBLE |
sde_xml_idx<n> 表中 double_tag 列的 xmlix<n>_db 索引的存储子句 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
XML_IDX_INDEX_ID |
xml_idx<n> 表中 ID 列的 xmlix<n>_id 索引的存储子句 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
XML_IDX_INDEX_PK |
sde_xml_idx<n> 表中 xml_key_column 标识列的 xmlix<n>_pk 索引的存储子句 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
XML_IDX_INDEX_STRING |
sde_xml_idx<n> 表中 string_tag 列的 xmlix<n>_st 索引的存储子句 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
XML_IDX_INDEX_TAG |
sde_xml_idx<n> 表中 tag_id 列的 xmlix<n>_tg 索引的存储子句 |
有关 CREATE INDEX 参数的信息,请参阅 PostgreSQL 文档。 |
XML_IDX_STORAGE |
sde_xml_idx<n> 表(XML 列的索引表)的存储子句 |
有关 CREATE TABLE 参数的信息,请参阅 PostgreSQL 文档。 |
对于 XML 参数,<n> 是指与特定 XML 列关联的 xml_column_id。
参数的功能描述
业务表和索引存储参数
业务表是由 ArcSDE 客户端、sdetable 管理命令或 ArcSDE C 应用程序编程接口 (API) SE_table_create 函数创建的任意 PostgreSQL 表。使用 sde_dbtune 表的 B_STORAGE 参数可定义业务表的存储方式配置。
有五种索引存储参数支持创建业务表索引:
- B_INDEX_USER 参数保存通过 C API 函数 SE_table_create_index 和 sdetable 命令的 create_index 操作创建的用户定义索引的存储配置。
- B_INDEX_ROWID 参数用于保存 ArcSDE 为注册表的对象 ID 列(也称为 ROWID 或 OBJECTID)创建的索引的存储配置。
- B_INDEX_RASTER 参数保存将栅格列添加到业务表时 ArcSDE 创建的栅格列索引的填充系数信息。此索引由 ArcSDE C API 函数 SE_rastercolumn_create 创建。ArcGIS 在创建要素类时,会通过执行 sderaster 命令的添加、复制和导入操作调用此函数。
- B_INDEX_TO_DATE 参数指定索引 R<registration_id>_sde_todate 的填充系数。此索引在对业务表启用存档时创建,在存档操作过程中更新历史记录表时会使用此索引。
- B_INDEX_XML 参数指定业务表中 XML 列的索引的填充系数(后面的“XML 类型参数”部分也将介绍这一参数)。
A 表和 D 表存储参数
将业务表或要素类注册为版本化业务表或要素类,从而允许多个用户维护和编辑同一个对象。ArcSDE 会为注册版本的每个表创建两个表,即添加表和删除表。
每过一段适当的时间间隔,用户就会合并他们所做的更改和其他用户所做的更改,并协调修改相同要素时产生的所有冲突。
A 表参数
A_STORAGE 参数维护 A 表的存储配置。A 表的名称为 A<n>,其中 <n> 是在 TABLE_REGISTRY 系统表中列出的注册 ID。例如,如果业务表 ROADS 使用注册 ID 10 列出,则 ArcSDE 将创建名为 A10 的 A 表。
另外,还有五个存储参数,用于保存 A 表索引的存储方式配置。A_INDEX_ROWID 参数指定 ArcSDE 为多版本化对象 ID 列(也称为 ROWID)创建的索引的填充系数。A 表的 ROWID 索引名为 A<n>_ROWID_IX1,其中 <n> 是业务表的注册 ID,业务表使用该 ID 与 A 表建立关联。
A_INDEX_STATEID 参数用于保存 ArcSDE 为 A 表中 SDE_STATE_ID 列创建的索引的填充系数配置。SDE_STATE_ID 列索引称为 A<n>_STATE_IX2,其中 <n> 是业务表的注册 ID,业务表使用该 ID 与 A 表建立关联。
A_INDEX_USER 参数用于保存 ArcSDE 为 A 表创建的用户定义索引的填充系数配置。业务表中用户定义的索引在 A 表中可重复。A_INDEX_RASTER 参数指定 A 表中栅格列索引的填充系数。
A_INDEX_XML 参数指定 A 表中 XML 列索引的填充系数(后面的“XML 类型参数”部分也将介绍这一参数)。
D 表参数
D_STORAGE 参数保存 D 表的存储配置。D 表的名称为 D<n>,其中 <n> 是在 TABLE_REGISTRY 系统表中列出 D 表时所用的注册 ID。例如,如果业务表 ROADS 使用注册 ID 10 列出,则 ArcSDE 将创建名为 D10 的 D 表。
另外,还有两个存储参数,用于保存 ArcSDE 为 D 表创建的索引的存储配置:
- D_INDEX_ALL 参数指定 ArcSDE 为 D 表中 SDE_STATE_ID 和 SDE_DELETES_ROW_ID 列创建的 D<n>_IDX1 索引的填充系数。
- D_INDEX_DELETED_AT 参数保存 ArcSDE 为 D 表中 SDE_DELETED_AT 列创建的 D<n>_IDX2 索引的填充系数。
有关 A 表和 D 表的结构以及表使用方式的详细信息,请参阅 PostgreSQL 中地理数据库 (geodatabase) 内的版本化表。
栅格表参数
添加到业务表的栅格列实际上是对存储在包含四个表和五个支持索引的方案中的栅格数据的外键引用。栅格表参数定义栅格表和索引的配置。
RAS_STORAGE 参数保存 RAS 表的 PostgreSQL CREATE TABLE 的存储配置。
RAS_INDEX_ID 参数指定 RAS 表索引的填充系数。BND_STORAGE 参数保存 BND 表的 PostgreSQL CREATE TABLE 的存储配置。
BND_INDEX_COMPOSITE 参数指定 BND 表的复合列索引的填充系数。
BND_INDEX_ID 存储参数指定 BND 表的行 ID (RID) 列索引的填充系数。
AUX_STORAGE 参数保存 AUX 表的 PostgreSQL CREATE TABLE 的存储配置。
AUX_INDEX_COMPOSITE 参数指定 AUX 表索引的填充系数。
BLK_STORAGE 参数保存 BLK 表的 PostgreSQL CREATE TABLE 的存储配置。
BLK_INDEX_COMPOSITE 参数指定 BLK 表索引的填充系数。
您会发现栅格索引的默认填充系数要比 sde_dbtune 表中其他索引的系数大。这是因为栅格数据通常变化不大。
还有另一类栅格表,即栅格属性表。此表(或这些表;可以存在多个此类表)存储栅格像元值的属性值。B_STORAGE 参数定义这些表的存储方式。如果需要为这些表定义不同于其他要素类业务表的存储位置,请确保创建一个可在创建栅格数据集和栅格目录时使用的栅格关键字(该关键字指定栅格属性表的各种存储信息)。
几何存储参数
ArcSDE for PostgreSQL 提供了两种空间数据存储格式。GEOMETRY_STORAGE 参数指定使用的几何存储方法。该参数具有以下值:ST_GEOMETRY 或 PG_GEOMETRY。
要使用 PG_GEOMETRY 存储类型,必须安装 PostGIS,且必须将数据库配置为使用 PostGIS 几何存储类型。有关详细信息,请参阅 ArcGIS 和 PostGIS 几何类型。
日志文件参数
日志文件表由 ArcSDE 使用,用于维护所选记录的集合。日志文件参数影响日志文件及日志文件数据表与索引。它们以字母 L 或单词 SESSION 开头。
参数如下:
- LD_INDEX_ALL 定义 sde_logfile_data 和 sde_logpool 表的主键填充系数。
- LD_STORAGE 定义 sde_log file_data 和 sde_logpool_<sde_id> 表的配置。
- LF_INDEX_ID 定义 sde_log file 主键填充系数的存储方式。
- LF_INDEX_NAME 定义 sde_log file 的唯一索引的填充系数。
- LF_STORAGE 定义 sde_logfiles 表的存储配置。
- SESSION_INDEX 配置独立日志表中 logdata_<sde_id>_<sde_id>_<current_standalone_id>_idx1 索引以及会话表中 logsession_<sde_id>_idx1 索引的填充系数。
- SESSION_STORAGE 定义独立日志表的 logdata_<sde_id>_<current_standalone_id> 和会话表的 session_<sde_id> 的存储配置。
- 在 PostgreSQL 中的地理数据库内不使用 SESSION _TEMP_TABLE。
有关如何在地理数据库中使用日志文件表的详细信息,请参阅 PostgreSQL 中的 ArcSDE 日志文件表。
用户界面参数
用户界面参数以 UI 开头,用于指示其关联配置关键字在 ArcGIS 用户界面和 ArcObjects 中是否可用。UI_TEXT 用于非复合配置关键字。UI_TOPOLOGY_TEXT 用于拓扑关键字。UI_TERRAIN_TEXT 用于 terrain 关键字。UI_NETWORK_TEXT 用于网络关键字。有关如何使用 UI 参数的详细信息,请参阅使配置关键字在 ArcGIS 中可用。
XML 类型参数
如果您在地理数据库中不使用 XML 列和 XML 文档,则无需对这些参数进行配置。
XML_COLUMN_STORAGE 参数会确定是以 ArcSDE XML 方式,还是以本机 PostgreSQL XML 方式创建 XML 列。默认设置为使用 ArcSDE XML (SDE_XML)。
DATA_DICTIONARY 配置关键字的 XML_INDEX_TAGS_INDEX 参数用于指定 sde_xml_indexes 表索引的填充系数。
DATA_DICTIONARY 配置关键字的 XML_INDEX_TAGS_TABLE 参数定义 sde_xml_index_tags ArcSDE 地理数据库系统表的存储方式。如果想使用这两个参数指定自定义存储方式,必须在创建地理数据库之前更改它们的值,因为它们控制地理数据库系统表的存储方式。
A_INDEX_XML 参数定义版本化要素类的 A 表中 XML 列索引的填充系数。
B_INDEX_XML 参数定义业务表中 XML 列的索引的填充系数。
XML_IDX_FULLTEXT_UPDATE_METHOD 定义如何将 XML 文档表 (sde_xml_doc<n>) 中 xml_doc_val 列的更改内容和 XML 列 (sde_xml_idx<n>) 索引表中 text_tag 列的更改内容传递至全文索引。此参数的选项为 AUTOMATIC 或 MANUAL。设置为 AUTOMATIC 时,为 XML 端表创建的触发器将在插入行时更新索引。如果 XML_IDX_FULLTEXT_UPDATE_METHOD 的值未设置为 AUTOMATIC,则假定其为 MANUAL。
XML_DOC_STORAGE 参数设置 sde_xml_doc<n> 表的存储方式。
XML_DOC_INDEX 配置参数设置 sde_xml_doc<n> 表中 xmldoc<n>_pk 和 xml_doc<n>_ix 索引的填充系数。
XML_DOC_UNCOMPRESSED_TYPE 配置参数确定 XML 文档内容的存储方式。选项为 BINARY 或 TEXT。如果使用 BINARY,则以 bytea 数据类型存储数据。如果使用 TEXT,数据将采用 Unicode 或 ASCII 格式,具体取决于是否将数据库设置为存储 Unicode 数据 (UTF-8)。
XML_IDX_STORAGE 配置参数设置 sde_xml_idx<n> 表(XML 列的索引表)的存储方式。以下参数定义 sde_xml_idx<n> 表自身各列的索引的存储方式:
- XML_IDX_INDEX_DOUBLE - 定义 double_tag 列的 xmlix<n>_db 索引的存储方式
- XML_IDX_INDEX_ID - 定义 ID 列的 xmlix<n>_id 索引的存储方式
- XML_IDX_INDEX_PK - 定义 xml_key_column 标识列的 xmlix<n>_pk 索引的存储方式
- XML_IDX_INDEX_STRING - 定义 string_tag 列的 xmlix<n>_st 索引的存储方式
- XML_IDX_INDEX_TAG - 定义 tag_id 列的 xmlix<n>_tg 索引的存储方式
注释
可在需要时通过添加一行以单个井号 (#) 开头的文本以在 dbtune.sde 文件中添加 COMMENT 参数。创建自己的自定义关键字并且希望添加关于使用关键字的方法或时间的注释时,可执行此操作。例如,可以为用户的日志文件关键字添加如下所示的注释:
#COMMENT "This keyword is used by ArcSDE to create log file tables for all users logged in as editor"