空間索引概述 空間位置切分方式

2022-11-29 08:24:05 字數 4706 閱讀 4891

空間索引概述

其他版本

sql server 支援空間資料和空間索引。「空間索引」是一種擴充套件索引,允許您對空間列編制索引。空間列是包含空間資料型別(如geometry或geography)的資料的表列。

有關此發行版中新的空間功能的詳細說明和示例(包括影響空間索引的功能),請*****sql server 2012 中的新空間功能。

本主題內容

關於空間索引

o 將索引空間分解成網格層次結構

o 分割

o 分割方案

空間索引支援的方法

o 空間索引支援的幾何圖形方法

o 空間索引支援的地域方法

關於空間索引

將索引空間分解成網格層次結構

在 sql server 中,空間索引使用 b 樹構建而成,也就是說,這些索引必須按 b 樹的線性順序表示二維空間資料。因此,將資料讀入空間索引之前,sql server 先實現對空間的分層均勻分解。索引建立過程會將空間分解成乙個四級「網格層次結構」。

這些級別指的是「第 1 級」(頂級)、「第 2 級」、「第 3 級」和「第 4 級」。

每個後續級別都會進一步分解其上一級,因此上一級別的每個單元都包含下一級別的整個網格。在給定級別上,所有網格沿兩個軸都有相同數目的單元(例如 4x4 或 8x8),並且單元的大小都相同。

下圖顯示了網格層次結構每個級別的右上角單元被分解成 4x4 網格的情況。事實上,所有單元都是以這種方式分解的。因此,以此為例,將乙個空間分解成四個級別的 4x4 網格實際上會總共產生 65,536 個第四級單元。

主要:針對空間索引進行的空間分解與應用程式資料使用的度量單位無關。

網格層次結構的單元是利用多種 hilbert 空間填充曲線以線性方式編號的。然而,出於演示目的,這裡使用的是簡單的按行編號,而不是由 hilbert 曲線實際產生的編號。在下圖中,幾個表示建築物的多邊形和表示街道的線已經放進了乙個 4x4 的 1 級網格中。

第 1 級單元的編號為 1 到 16,編號從左上角的單元開始。

網格密度

沿網格軸的單元數目確定了網格的「密度」:單元數目越大,網格的密度越大。例如,8x8 網格(產生 64 個單元)的密度就大於 4x4 網格(產生 16 個單元)的密度。

網格密度是以每個級別為基礎定義的。

create spatial indextransact-sql 語句支援 grids 子句,使用該子句可以在不同級別指定不同的網格密度。可以使用下列關鍵字之一指定給定級別的網格密度。

在 sql server 中,當資料庫相容級別設定為 100 或更低時,在所有級別上預設值為 medium。當資料庫相容級別設定為 110 或更高時,預設值為自動網格方案。

您可以通過指定非預設的網格密度控制分解過程。例如,在不同級別指定不同網格密度對於基於索引空間的大小和空間列中的物件來優化索引可能非常有用。

注意:當資料庫相容級別設定為 100 或更低時,空間索引的網格密度顯示在目錄檢視的 level_1_grid、level_2_grid、level_3_grid 和 level_4_grid 列中。geometry_auto_grid/geography_auto_grid分割方案選項不填充這些列。

使用自動網格選項時, 目錄檢視對這些列使用null值。

分割將索引空間分解成網格層次結構後,空間索引將逐行讀取空間列中的資料。讀取空間物件(或例項)的資料後,空間索引將為該物件執行「分割過程」。分割過程通過將物件與其接觸的網格單元集(「接觸單元」)相關聯使該物件適合網格層次結構。

從網格層次結構的第 1 級開始,分割過程以「廣度優先」方式對整個級別進行處理。在可能的情況下,此過程可以連續處理所有四個級別,一次處理乙個級別。

分割過程的輸出為物件的空間索引中所記錄的接觸單元集。通過引用這些已記錄單元,空間索引可以確定該物件在空間中相對於空間列中也儲存在索引中的其他物件的位置。

分割規則

為了限制為物件記錄的接觸單元數,分割過程採用了幾個分割規則。這些規則確定分割過程的深度以及在索引中記錄哪些接觸單元。

這些規則如下:

覆蓋規則

如果乙個物件完全蓋住了某個單元,則稱該單元由該物件所「覆蓋」。被覆蓋的單元會參與計數,但不進行分割。此規則應用於網格層次結構的所有級別。

覆蓋規則簡化了分割過程,並減少了空間索引記錄的資料量。

每物件單元數規則

此規則強制執行「每個物件的單元數限制」,該限制確定每個物件可以具有的最大單元數(級別 1 例外)。在較低級別上,每個物件的單元數規則控制可以記錄有關該物件的資訊量。

最深單元規則

最深單元規則通過只記錄已為物件分割的最底部單元來生成該物件的最近似物件。父單元不計入每物件單元數,這些單元不記錄在索引中。

這些分割規則依次逐步應用於每個網格級別。此部分的其餘內容更詳細地介紹了這些分割規則。

覆蓋規則

如果乙個物件完全蓋住了某個單元,則稱該單元由該物件所「覆蓋」。例如,在下圖中,乙個第 2 級單元 15.11 完全由八邊形的中間部分所覆蓋。

被覆蓋的單元會參與計數並記錄在索引中,但不再進行分割。

每物件單元數規則

每個物件的分割程度主要取決於空間索引的「每物件單元數限制」。此限制確定了對於每個物件分割可以計數的最大單元數。然而,請注意,每物件單元數規則不對第 1 級強制執行,因此可能超出此限制。

如果第 1 級計數達到(或超出)每物件單元數限制,則在較低級別不再進行分割。

只要計數低於每物件單元數限制,分割過程就將繼續。從編號最低的接觸單元(例如上圖中的單元 15.6)開始,此過程將測試每個單元以評估是對其進行計數還是進行分割。

如果分割某單元將超出每物件單元數限制,將對該單元進行計數而不進行分割。否則,將對該單元進行分割,而對由物件接觸的較低階別的單元進行計數。分割過程將以這種方式在整個級別的廣度範圍內繼續進行。

此過程對低級別網格的分割單元依次逐步進行重複,直至達到限制或不再有要計數的單元為止。

例如,上圖顯示了乙個完全適合第 1 級網格的單元 15 的八邊形。在此圖中,單元 15 已進行分割,將八邊形分成了九個二級單元。此圖假定每物件單元數限制為 9 或更大。

然而,如果每物件單元數限制為 8 或更小,則單元 15 將不進行分割,而只為該物件對單元 15 進行計數。

預設情況下,每物件單元數限制為每個物件 16 個單元,這將在大多數空間索引的空間和精度之間提供乙個令人滿意的折中方案。然而,create spatial indextransact-sql 語句支援 cells_per_object=n子句,使用該子句可以指定介於 1 和 8192(包含這兩者)之間的每物件單元數限制。

注意: 空間索引的cells_per_object設定顯示在目錄檢視中。

最深單元規則

最深單元規則利用每個較低級別單元屬於其上級單元這一事實:第 4 級單元屬於第 3 級單元,第 3 級單元屬於第 2 級單元,第 2 級單元屬於第 1 級單元。例如,屬於單元 1.

1.1.1 的物件也屬於單元 1.

1.1、1.1 和 1。

這種單元層次結構關係的知識內建到查詢處理器。因此,只有最深級別的單元需要記錄在索引中,從而最大限度地減少了索引需要儲存的資訊。

在下圖中,相對較小的菱形多邊形被分割。索引使用預設的每物件單元數限制 16,此物件較小,未達到該限制。因此,分割一直下至第 4 級。

此多邊形駐留在以下的第 1 級到第 3 級的單元中:4、4.4 以及 4.

4.10 和 4.4.

14。然而,使用最深單元規則,分割將僅對十二個位於第 4 級的單元進行計數:4.

4.10.13-15 以及 4.

4.14.1-3、4.

4.14.5-7 和 4.

4.14.9-11。

分割方案

空間索引的行為部分取決於「分割方案」。分割方案特定於資料型別。在 sql server 中,空間索引支援兩種分割方案:

「幾何圖形網格分割」,這是適用於geometry資料型別的方案。

「地理網格分割」,該方案適用於資料型別為geography的列。

注意: 空間索引的tessellation_scheme設定顯示在目錄檢視中。

幾何圖形網格分割方案

geometry_auto_grid 分割是 sql server 和更高版本的geometry資料型別的預設分割方案。geometry_grid 分割是 sql server 中 geometry 資料型別的唯一可用分割方案。本節討論了與使用空間索引有關的幾何圖形網格分割的幾個方面:

支援的方法和邊界框。

注意: 您可以使用create spatial indextransact-sql 語句的 using (geometry_auto_grid/geometry_grid) 子句顯式指定此分割方案。

邊界框幾何圖形資料占有的平面可以是無限的。然而,在 sql server 中,空間索引需要有限空間。為了建立有限空間以用於分解,幾何圖形網格分割方案需要矩形「邊界框」。

該邊界框由四個座標(x-min,y-min)和(x-max,y-max)定義,這些座標儲存為空間索引的屬性。這些座標所表示的意義如下:

x-min是邊界框左下角的 x 座標。

y-min是左下角的 y 座標。

x-max是右上角的 x 座標。

y-max是右上角的 y 座標。

注意:這些座標通過create spatial indextransact-sql 語句的 bounding_box 子句指定。

(x-min,y-min)和(x-max,y-max)座標確定邊界框的位置和尺寸。邊界框的外部空間視作乙個編號為 0 的單元。

空間索引將分解邊界框的內部空間。網格層次結構的第 1 級網格將填充邊界框。若要在網格層次結構中放置幾何物件,空間索引會將該物件的座標與邊界框的座標進行比較。

教師版空間位置關係與證明

2012年高考專題複習 空間位置關係與證明 立幾1 高考要考什麼 一 線與線的位置關係 平行 相交 異面 線與面的位置關係 平行 相交 線在麵內 面與面的位置關係 平行 相交 二 轉化思想 例1 如圖,在四稜錐中,底面abcd是正方形,側稜底面abcd,e是pc的中點,作交pb於點f i 證明平面 ...

空間位置關係的判斷與證明 參考教案 學生版

板塊一.對平面的進一步認識 例1 在空間中,兩條直線沒有公共點 是 這兩條直線平行 的 a 充分不必要條件b 必要不充分條件 c 充要條件d 既不充分也不必要條件 例2 若是正方體上底面對角線上一點,則 三點可以確定平面 a 個 b 個 c 無數個 d 個或無數個 例3 在三稜錐中,作截面,若的延長...

2023年高考數學專題講義空間位置關係與證明

專題22 空間位置關係與證明 高考在考什麼 考題回放 1 浙江 若是兩條異面直線外的任意一點,則 b a 過點有且僅有一條直線與都平行 b 過點有且僅有一條直線與都垂直 c 過點有且僅有一條直線與都相交 d 過點有且僅有一條直線與都異面 2 湖南 如圖,過平行六面體abcd a1b1c1d1任意兩條...