Informix 中地理数据库 (geodatabase) 内的空间索引

IBM Informix Spatial DataBlade 支持构建称为 R 树空间索引的空间索引,使用该空间索引可查询包含二维地理数据的空间列。

R 树索引不同于 Informix Dynamic Server 软件提供的等级 B 树索引。

不能将 B 树索引应用于空间列,因为空间列的二维特征需要 R 树索引。出于同样的原因,也不能将 R 树索引应用于非空间列或复合列。

当创建 R 树索引而不是 B 树索引时,需要在 CREATE INDEX 语句中使用 USING RTREE 子句。完整的语法如下:

CREATE INDEX <index> 
ON <table> (<spatial column> ST_Geometry_Ops) 
USING RTREE (<parameters>) <index options>;

ST_Geometry_Ops 是 Informix Spatial DataBlade 运算符类。ST_Geometry_Ops 管理 R 树索引。

当首次创建要素类并从 load_only_io 模式转换为 normal_io 模式时,ArcSDE 将创建空间索引。空间索引创建时使用默认参数 bottom_up_build = 'yes',而未使用索引选项。

不必调整空间索引来提高性能,因其全部通过 R 树索引进行处理。因此,不必通过尝试不同的像元大小和不同的格网等级配置来试验空间索引。ArcSDE for Informix 不需要指定空间索引或定义空间格网大小。这意味着在使用 ArcSDE 管理命令进行数据管理(例如,shp2sde)时不必指定 -g 空间索引标记。设置 -g 标记没有负面影响,但是 -g 标记会被存储在 Informix 中的地理数据库忽略,因此,不使用 -g 标记。

有关 ArcSDE 管理命令的详细信息,请参阅随 ArcGIS Server Enterprise 一同安装的《ArcSDE 管理命令参考》。

R 树索引统计

Informix 优化器不使用 R 树索引,除非表上的统计数据是最新的。如果 R 树索引是在加载数据后创建的,则统计数据是最新的,因此优化器将使用该索引。但是,如果索引是在加载数据前创建的,优化器将不使用 R 树索引,因为统计数据已过时。要更新统计数据,请使用 UPDATE STATISTICS Informix SQL 语句。

UPDATE STATISTICS FOR TABLE <table_name>

3/7/2012