用户指南和参考

若您想使用 Spatial 谓词来优化 Spatial 查询,需要遵循下列规则:

索引开发示例

表 4显示了创建 Spatial 查询来开发 Spatial 索引的正确方法和错误方法。


表 4. 索引开发规则
Spatial 查询 违反的规则

SELECT *
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=1

此示例中没有违反条件。

SELECT *
FROM customers c
WHERE db2gse.ST_Distance(c.location,:SanJose)<10

此示例中没有违反条件。
SELECT *
FROM customers c
WHERE db2gse.ST_Length(c.location)>10

必须在 WHERE 子句中使用谓词。(ST_Length 是 Spatial 函数,但不是谓词。)
SELECT *
FROM customers c
WHERE 1=db2gse.ST_Within(c.location,:BayArea)

谓词必须在比较的左边。
SELECT *
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=2

相等性比较必须使用整常数 1。
SELECT *
FROM customers c
WHERE db2gse.ST_Within(:SanJose,:BayArea)=1

必须在谓词中使用 Spatial 列作为搜索目标, 并且必须在那一列上创建 Spatial 索引。 (SanJose 和 BayArea 不是 Spatial 列,因此不能具有与它们相关的索引。)


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]