使用與參考手冊

使用空間索引的準則

DB2 Spatial Extender 使用空間索引增進空間查詢效能。想想最基本和最常見的空間查詢:方框查詢。 本查詢要求 DB2 Spatial Extender 傳回一個使用者定義方框內的所有幾何。 若沒有索引,DB2 Spatial Extender 就必須比較全部幾何與此方框。 不過,有了一個索引之後,DB2 Spatial Extender 就可尋找索引登錄, 找出其左下方座標大於或等於此方框座標及其右上方座標小於或等於此方框座標的索引登錄。 因為索引是按座標系統排序,所以 DB2 Spatial Extender 能快速取得候選的幾何列示。 剛才說明的處理稱為第一個流程

第二個流程決定每一個候選的幾何包封是否與此方框相交。 因為格線資料格包封與方框相交而通過第一個流程的幾何本身,可能有一個沒有相交的包封。

第三個流程比較候選的幾何的實際座標與方框,判斷方框內是否有此幾何的任何部份。 前面兩個流程大幅減少總個體群後,對總個體群的一個子集所構成的候選幾何列示,執行這個最後且複雜的比較處理。

除了 EnvelopesIntersect 函數以外,全部空間查詢執行這三個流程。 EnvelopesIntersect 函數只執行前面兩個流程。它的設計是專門為了顯示作業, 這些作業經常使用自己的內建剪輯常式而且不需要第三個流程的細密處理。

選取格線資料格大小

不規則的幾何包封形狀使格線資料格大小的選擇變得複雜。 因為不規則,所以有些幾何包封會與一些格線相交,有些包封則位於單一格線資料格內。 根據資料的空間分配而定,相反地,有些格線資料格會與許多幾何包封相交。

為了使空間索引順利運作,您一定要選取正確的格線數目和大小。 試想一個含有一致大小的幾何的空間直欄。 在此案例中,單一格線層次就足夠。從包含平均幾何包封的一個格線資料格大小開始。 測試應用程式時,您會發現增加格線資料格大小會增進查詢效能。 這是因為每一個格線資料格含有一些幾何,而且第一個流程能夠更快捨棄不合格的幾何。 不過,您會發現繼續增加資料格大小時,效能會開始降低。 這是因為第二個流程終究要與更多候選的幾何競爭。

選取層次數

若要索引的是關於相同相對大小的物件,那麼您可使用單一格線層次。 雖然如此,但並非全部直欄都含有相同相對大小的幾何。 通常一些空間直欄的幾何可分成一些大小間隔。 例如,有一個道路網路,在該網路中幾何分割成街道、主要道路和公路。 街道的長度相同而且可以集中在一個大小間隔。 對於主要道路和公路來說,也是如此。 因此,街道 (代表一個大小間隔) 可以分類到第一個格線層次,道路網路分類到第二個格線層次,主要公路分類到第三個格線層次。 另一個範例則包括一個郡直欄,該直欄含有被較大鄉村地區包圍的小都心。 在本案例中,有兩個大小間隔和兩個格線層次,一個代表較小都巿地區,另一個代表較大鄉村地區。 這些狀況很普遍而且需要使用多層次格線。

若要選取每一個格線層次的資料格大小,請選取那些稍大於每一個大小間隔的格線資料格大小。 透過查詢空間直欄測試索引。

每一個附加的層次需要額外索引掃描。 嘗試稍微向上或向下調整格線大小以判斷是否能大幅增進效能。


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