使用與參考手冊

若要利用空間述詞使空間查詢最佳化,則適用下列規則:

索引開發範例

表 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 不是空間直欄,因此沒有與它們相關的空間索引。)


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]