使用者の手引きおよび解説書

以下の規則は、地理情報述部を使用して地理情報照会を最適化する場合に適用されます。

索引活用の例

表 4 は、 地理情報索引を活用するために地理情報照会を作成する場合の正しい方法と間違った方法を示しています。


表 4. 索引活用の規則
地理情報照会 違反している規則

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 は地理情報関数だが、述部ではない。)
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

検索ターゲットとして述部に使用する地理情報列がなければならず、 その列に対する地理情報索引が作成されていなければならない。 (SanJose と BayArea は地理情報列ではないので、地理情報索引が関連付けられない。)


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]