IBM Db2 Spatial Extender 提供了三层的格网空间索引,使应用程序能够查询包含在空间列中的二维地理数据,并可快速识别给定范围内的所有几何。
二维空间索引不同于 Db2 提供的传统等级 B 树索引。由于空间列的二维特征需要空间索引结构,因此 B 树索引可能不能应用于空间列。同样,空间索引可能不能应用于非空间列和任何种类的复合列。
因此,空间索引的 CREATE INDEX 语法包括其他 USING 子句,该子句将指示 Db2 使用 Spatial Extender 的空间索引而非 B 树索引。完整的语法如下:
CREATE INDEX <index_name>
ON <table> (<spatial column>)
USING db2gse.spatial_index (<grid level 1>, [grid level 2], [grid level 3])
所添加的 USING 子句可区分空间索引和 B 树索引。由于该语句并不遵循当前的函数路径,因此 db2gse 方案的名称必须限定 spatial_index 的扩展名。
由于 B 树的设计主旨在于建立索引这一数据的简单特性,数据库设计者可指示 Db2 为一个或多个表列建立索引。但是,由于空间数据很复杂,所以要求设计者了解 DB2 的相对大小分布。设计者必须决定该空间索引格网等级的最佳大小和数量。
格网等级([格网等级 1]、[格网等级 2] 和 [格网等级 3])按不断增加的像元大小进行输入。因此,等级二的像元大小必须大于等级一,等级三的像元大小则必须大于等级二。格网等级一是必需的,但可通过设置零值 (0) 来禁用等级二和等级三。
有关空间索引的详细信息,请参阅 IBM Knowledge Center 中的 Db2 文档。