空間索引概述-空間位置切分方式_第1頁
空間索引概述-空間位置切分方式_第2頁
空間索引概述-空間位置切分方式_第3頁
空間索引概述-空間位置切分方式_第4頁
空間索引概述-空間位置切分方式_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、空間索引概述其他版本SQLServer支持空間數(shù)據(jù)和空間索引??臻g索引”是一種擴(kuò)展索引,允許您對(duì)空間列編制索 引??臻g列是包含空間數(shù)據(jù)類型(如geometry或geography)的數(shù)據(jù)的表列。有關(guān)此發(fā)行版中新的空間功能的詳細(xì)說明和示例(包括影響空間索引的功能), 請(qǐng)下載白皮書 SQL Server 2012 中的新空間功能。本主題內(nèi)容關(guān)于空間索引o 將索引空間分解成網(wǎng)格層次結(jié)構(gòu)o 分割o 分割方案空間索引支持的方法o 空間索引支持的幾何圖形方法o 空間索引支持的地域方法關(guān)于空間索引將索引空間分解成網(wǎng)格層次結(jié)構(gòu)在SQLServer中,空間索引使用B樹構(gòu)建而成,也就是說,這些索引必須按B樹的線性

2、順 序表示二維空間數(shù)據(jù)。因此,將數(shù)據(jù)讀入空間索引之前,SQLServer先實(shí)現(xiàn)對(duì)空間的分層均勻 分解。索引創(chuàng)建過程會(huì)將空間分解成一個(gè)四級(jí)網(wǎng)格層次結(jié)構(gòu)”。這些級(jí)別指的是第1級(jí)” (頂級(jí))、第2級(jí)”、第3級(jí)”和第4級(jí)”。 每個(gè)后續(xù)級(jí)別都會(huì)進(jìn)一步分解其上一級(jí),因此上一級(jí)別的每個(gè)單元都包含下一級(jí)別的整個(gè)網(wǎng)格。在給定級(jí)別上,所有網(wǎng)格沿兩個(gè)軸都有相同數(shù)目的單元(例如4x4或8x8),并且單元 的大小都相同。下圖顯示了網(wǎng)格層次結(jié)構(gòu)每個(gè)級(jí)別的右上角單元被分解成4x4網(wǎng)格的情況。事實(shí)上,所有單元 都是以這種方式分解的。因此,以此為例,將一個(gè)空間分解成四個(gè)級(jí)別的4x4網(wǎng)格實(shí)際上會(huì)總共產(chǎn)生65,536個(gè)第四級(jí)單元。

3、主要:針對(duì)空間索引進(jìn)行的空間分解與應(yīng)用程序數(shù)據(jù)使用的度量單位無關(guān)。網(wǎng)格層次結(jié)構(gòu)的單元是利用多種Hilbert空間填充曲線以線性方式編號(hào)的。然而,出于演示目 的,這里使用的是簡(jiǎn)單的按行編號(hào),而不是由Hilbert曲線實(shí)際產(chǎn)生的編號(hào)。在下圖中,幾個(gè) 表示建筑物的多邊形和表示街道的線已經(jīng)放進(jìn)了一個(gè)4x4的1級(jí)網(wǎng)格中。第1級(jí)單元的編號(hào)為1到16,編號(hào)從左上角的單元開始。網(wǎng)格密度沿網(wǎng)格軸的單元數(shù)目確定了網(wǎng)格的密度”:?jiǎn)卧獢?shù)目越大,網(wǎng)格的密度越大。例如,8x8網(wǎng) 格(產(chǎn)生64個(gè)單元)的密度就大于4x4網(wǎng)格(產(chǎn)生16個(gè)單元)的密度。網(wǎng)格密度是以每 個(gè)級(jí)別為基礎(chǔ)定義的。CREATESPATIALINDEX T

4、ransact-SQL語句支持GRIDS子句,使用該子句可以在不同級(jí)別指定不同的網(wǎng)格密度??梢允褂孟铝嘘P(guān)鍵字之一指定給定級(jí)別的網(wǎng)格密度。關(guān)鍵字網(wǎng)格配置單元數(shù)目LOW4X416MEDIUM8X864HIGH16X16256在SQLServer中,當(dāng)數(shù)據(jù)庫兼容級(jí)別設(shè)置為100或更低時(shí),在所有級(jí)別上默認(rèn)值為MEDIUM。當(dāng)數(shù)據(jù)庫兼容級(jí)別設(shè)置為110或更高時(shí),默認(rèn)值為自動(dòng)網(wǎng)格方案。您可以通過指定非默認(rèn)的網(wǎng)格密度控制分解過程。例如,在不同級(jí)別指定不同網(wǎng)格密度對(duì)于基于索弓I空間的大小和空間列中的對(duì)象來優(yōu)化索引可能非常有用。注意:當(dāng)數(shù)據(jù)庫兼容級(jí)別設(shè)置為100或更低時(shí),空間索引的網(wǎng)格密度顯示在 sys.spa

5、tial index tessellation目錄視圖的 level_1_grid level_2_grid level_3_grid和 level_4_grid列中。GEOMETRY_AUTO_GRID /GEOGRAPHY_AUTO_GRID 分割方案選項(xiàng)不填充這些 列。使用自動(dòng)網(wǎng)格選項(xiàng)時(shí),sys.spatial_index_tessellation目錄視圖對(duì)這 些列使用NULL值。分割將索引空間分解成網(wǎng)格層次結(jié)構(gòu)后,空間索引將逐行讀取空間列中的數(shù)據(jù)。讀取空間對(duì)象(或?qū)嵗┑臄?shù)據(jù)后,空間索引將為該對(duì)象執(zhí)行分割過程”。分割過程通過將對(duì)象與其接觸的網(wǎng) 格單元集(接觸單元”)相關(guān)聯(lián)使該對(duì)象適合網(wǎng)

6、格層次結(jié)構(gòu)。從網(wǎng)格層次結(jié)構(gòu)的第1級(jí)開始, 分割過程以廣度優(yōu)先”方式對(duì)整個(gè)級(jí)別進(jìn)行處理。在可能的情況下,此過程可以連續(xù)處理所 有四個(gè)級(jí)別,一次處理一個(gè)級(jí)別。分割過程的輸出為對(duì)象的空間索引中所記錄的接觸單元集。通過引用這些已記錄單元,空間索 引可以確定該對(duì)象在空間中相對(duì)于空間列中也存儲(chǔ)在索引中的其他對(duì)象的位置。分割規(guī)則為了限制為對(duì)象記錄的接觸單元數(shù),分割過程采用了幾個(gè)分割規(guī)則。這些規(guī)則確定分割過程的 深度以及在索引中記錄哪些接觸單元。這些規(guī)則如下:覆蓋規(guī)則如果一個(gè)對(duì)象完全蓋住了某個(gè)單元,則稱該單元由該對(duì)象所覆蓋”。被覆蓋的單元會(huì) 參與計(jì)數(shù),但不進(jìn)行分割。此規(guī)則應(yīng)用于網(wǎng)格層次結(jié)構(gòu)的所有級(jí)別。覆蓋規(guī)則

7、簡(jiǎn)化了 分割過程,并減少了空間索引記錄的數(shù)據(jù)量。 每對(duì)象單元數(shù)規(guī)則此規(guī)則強(qiáng)制執(zhí)行每個(gè)對(duì)象的單元數(shù)限制”,該限制確定每個(gè)對(duì)象可以具有的最大單元 數(shù)(級(jí)別1例外)。在較低級(jí)別上,每個(gè)對(duì)象的單元數(shù)規(guī)則控制可以記錄有關(guān)該對(duì)象 的信息量。最深單元規(guī)則最深單元規(guī)則通過只記錄已為對(duì)象分割的最底部單元來生成該對(duì)象的最近似對(duì)象。父單 元不計(jì)入每對(duì)象單元數(shù),這些單元不記錄在索引中。這些分割規(guī)則依次逐步應(yīng)用于每個(gè)網(wǎng)格級(jí)別。此部分的其余內(nèi)容更詳細(xì)地介紹了這些分割規(guī)則。覆蓋規(guī)則如果一個(gè)對(duì)象完全蓋住了某個(gè)單元,則稱該單元由該對(duì)象所覆蓋”。例如,在下圖中,一個(gè) 第2級(jí)單元15.11完全由八邊形的中間部分所覆蓋。被覆蓋的單元

8、會(huì)參與計(jì)數(shù)并記錄在索引中,但不再進(jìn)行分割。每對(duì)象單元數(shù)規(guī)則每個(gè)對(duì)象的分割程度主要取決于空間索引的每對(duì)象單元數(shù)限制”。此限制確定了對(duì)于每個(gè)對(duì) 象分割可以計(jì)數(shù)的最大單元數(shù)。然而,請(qǐng)注意,每對(duì)象單元數(shù)規(guī)則不對(duì)第1級(jí)強(qiáng)制執(zhí)行,因此 可能超出此限制。如果第1級(jí)計(jì)數(shù)達(dá)到(或超出)每對(duì)象單元數(shù)限制,則在較低級(jí)別不再進(jìn)行 分割。只要計(jì)數(shù)低于每對(duì)象單元數(shù)限制,分割過程就將繼續(xù)。從編號(hào)最低的接觸單元(例如上圖中的 單元15.6)開始,此過程將測(cè)試每個(gè)單元以評(píng)估是對(duì)其進(jìn)行計(jì)數(shù)還是進(jìn)行分割。如果分割某單 元將超出每對(duì)象單元數(shù)限制,將對(duì)該單元進(jìn)行計(jì)數(shù)而不進(jìn)行分割。否則,將對(duì)該單元進(jìn)行分割, 而對(duì)由對(duì)象接觸的較低級(jí)別的單

9、元進(jìn)行計(jì)數(shù)。分割過程將以這種方式在整個(gè)級(jí)別的廣度范圍內(nèi) 繼續(xù)進(jìn)行。此過程對(duì)低級(jí)別網(wǎng)格的分割單元依次逐步進(jìn)行重復(fù),直至達(dá)到限制或不再有要計(jì)數(shù) 的單元為止。例如,上圖顯示了一個(gè)完全適合第1級(jí)網(wǎng)格的單元15的八邊形。在此圖中,單元15已進(jìn) 行分割,將八邊形分成了九個(gè)二級(jí)單元。此圖假定每對(duì)象單元數(shù)限制為9或更大。然而,如果 每對(duì)象單元數(shù)限制為8或更小,則單元15將不進(jìn)行分割,而只為該對(duì)象對(duì)單元15進(jìn)行計(jì)數(shù)。 默認(rèn)情況下,每對(duì)象單元數(shù)限制為每個(gè)對(duì)象16個(gè)單元,這將在大多數(shù)空間索引的空間和精度 之間提供一個(gè)令人滿意的折中方案。然而,CREATESPATIALINDEX Transact-SQL語句支持 C

10、ELLS_PER_OBJECT = n子句,使用該子句可以指定介于1和8192 (包含這兩者)之間的每 對(duì)象單元數(shù)限制。注意:空間索引的cells per object設(shè)置顯示在 sys.spatial index tessellation目錄視圖中。最深單元規(guī)則最深單元規(guī)則利用每個(gè)較低級(jí)別單元屬于其上級(jí)單元這一事實(shí):第4級(jí)單元屬于第3級(jí)單元, 第3級(jí)單元屬于第2級(jí)單元,第2級(jí)單元屬于第1級(jí)單元。例如,屬于單元1.1.1.1的對(duì) 象也屬于單元1.1.1、1.1和1。這種單元層次結(jié)構(gòu)關(guān)系的知識(shí)內(nèi)置到查詢處理器。因此,只 有最深級(jí)別的單元需要記錄在索引中,從而最大限度地減少了索引需要存儲(chǔ)的信息。在

11、下圖中,相對(duì)較小的菱形多邊形被分割。索引使用默認(rèn)的每對(duì)象單元數(shù)限制16,此對(duì)象較小, 未達(dá)到該限制。因此,分割一直下至第4級(jí)。此多邊形駐留在以下的第1級(jí)到第3級(jí)的單 元中:4、4.4以及4.4.10和4.4.14。然而,使用最深單元規(guī)則,分割將僅對(duì)十二個(gè)位于第4 級(jí)的單元進(jìn)行計(jì)數(shù):4.4.10.13-15 以及 4.4.14.1-3、4.4.14.5-7 和 4.4.14.9-11。單元格:14 4,141.-3、5-丁 以甌甲元格:4 4.1Q 毒I分割方案 空間索引的行為部分取決于分割方案”。分割方案特定于數(shù)據(jù)類型。在SQLServer中,空 間索引支持兩種分割方案:幾何圖形網(wǎng)格分割”,這

12、是適用于geometry數(shù)據(jù)類型的方案。地理網(wǎng)格分割”,該方案適用于數(shù)據(jù)類型為geography的列。注意:空間索引的tessellation_scheme設(shè)置顯示在 sys.spatial index tessellation目錄視圖中。幾何圖形網(wǎng)格分割方案GEOMETRY_AUTO_GRID分割是SQLServer和更高版本的geometry數(shù)據(jù)類型的默認(rèn)分 割方案。GEOMETRY_GRID分割是SQLServer中g(shù)eometry數(shù)據(jù)類型的唯一可用分割方 案。本節(jié)討論了與使用空間索引有關(guān)的幾何圖形網(wǎng)格分割的幾個(gè)方面:支持的方法和邊界框。 注意:您可以使用 CREATE SPATIAL

13、INDEXTransact-SQL語句的 USING (GEOMETRY_AUTO_GRID/GEOMETRY_GRID子 句顯式指定此分割方案。邊界框幾何圖形數(shù)據(jù)占有的平面可以是無限的。然而在SQLServer中,空間索引需要有限空間。為 了建立有限空間以用于分解,幾何圖形網(wǎng)格分割方案需要矩形邊界框”。該邊界框由四個(gè)坐 標(biāo)(x-min,y-min)和(x-maxy-ma用定義,這些坐標(biāo)存儲(chǔ)為空間索引的屬性。這些坐標(biāo)所表 示的意義如下:x-min是邊界框左下角的x坐標(biāo)。y-min是左下角的y坐標(biāo)。x-max是右上角的x坐標(biāo)。y-max是右上角的y坐標(biāo)。注意:這些坐標(biāo)通過CREATE SPATI

14、AL INDEXTransact-SQL語句的BOUNDING BOX 子句才(x-min, y-min)和(x-may-maR坐標(biāo)確定邊界框的位置和尺寸。邊界框的外部空間視作一 個(gè)編號(hào)為0的單元。空間索引將分解邊界框的內(nèi)部空間。網(wǎng)格層次結(jié)構(gòu)的第1級(jí)網(wǎng)格將填充邊界框。若要在網(wǎng)格 層次結(jié)構(gòu)中放置幾何對(duì)象,空間索引會(huì)將該對(duì)象的坐標(biāo)與邊界框的坐標(biāo)進(jìn)行比較。下圖顯示了由邊界框的(x-mi幾y-min)和(x-maxy-maX)坐標(biāo)定義的點(diǎn)。網(wǎng)格層次結(jié)構(gòu)的頂 級(jí)顯示為4x4網(wǎng)格 出于演示的目的,這里省略了較低級(jí)別。邊界框的外卜部空間用零(0)指 示。請(qǐng)注意,對(duì)象A”部分超出了邊界框,對(duì)象B”完全位于邊界

15、框外部,即單元0中。邊界框與應(yīng)用程序空間數(shù)據(jù)的某些部分相對(duì)應(yīng)。索引的邊界框是完全包含存儲(chǔ)在空間列中的數(shù) 據(jù)還是只包含其中部分?jǐn)?shù)據(jù)取決于應(yīng)用程序。只有針對(duì)完全位于邊界框內(nèi)部的對(duì)象的計(jì)算操作 才會(huì)受益于空間索引。因此,若要獲得geometry列的空間索引所能提供的最大優(yōu)勢(shì),您需要 指定一個(gè)包含所有或大多數(shù)對(duì)象的邊界框。注意:空間索引的網(wǎng)格密度顯示sys.spatial index tessellations目錄視 圖的 bounding_box_xmin bounding_box_ymin bounding_box_xmax和 bounding box ymax 列中。地理網(wǎng)格分割方案此分割方案僅

16、適用于geography列。此部分總結(jié)了地理網(wǎng)格分割支持的方法,并討論了如何 將測(cè)量空間投影到平面上,該平面隨后將分解成網(wǎng)格層次結(jié)構(gòu)。注意:您可以使用 CREATE SPATIAL INDEXTransact-SQL語句的 USING (GEOGRAPHY AUTO GRID/GEOGRAPHY GRID子句顯式指定此分割方案。將測(cè)量空間投影到平面上對(duì)geography實(shí)例(對(duì)象)的計(jì)算將包含對(duì)象的空間視作測(cè)量橢圓體。若要分解此空間,地 理網(wǎng)格分割方案將橢圓體表面分為上半球和下半球,然后執(zhí)行下列步驟:將每個(gè)半球投影在四邊形棱錐圖面上。將兩個(gè)棱錐圖平展開。聯(lián)接平展的棱錐圖以形成非歐幾里得平面。下

17、圖顯示了此三步分解過程的示意圖。在棱錐圖中,虛線表示每個(gè)棱錐圖的四個(gè)面的邊界。步 驟1和2顯示測(cè)量橢圓體,使用一條綠色水平線表示赤道經(jīng)線,使用一系列綠色垂直線表示 若干條緯線。步驟1顯示要投影在兩個(gè)半球上的棱錐圖。步驟2顯示要平展的棱錐圖。步 驟3顯示平展的棱錐圖,這些棱錐圖已組合起來形成一個(gè)平面,顯示出許多投影的經(jīng)線。請(qǐng)注 意,這些投影線伸直后長(zhǎng)度不一,具體取決于它們落在棱錐圖上的位置??臻g投影到平面上之后,此平面將會(huì)分解成四級(jí)網(wǎng)格層次結(jié)構(gòu)。不同級(jí)別可以使用不同的網(wǎng)格 密度。下圖顯示了已分解成一個(gè)4x4的1級(jí)網(wǎng)格后的平面。出于演示目的,這里省略了網(wǎng)格 層次結(jié)構(gòu)的較低級(jí)別。事實(shí)上,此平面完全分

18、解成了一個(gè)四級(jí)網(wǎng)格層次結(jié)構(gòu)。分解過程完成后, 將逐行從geography列讀取地理數(shù)據(jù),并為每個(gè)對(duì)象依次執(zhí)行分割過程。(% I展的上半耳空間索引支持的方法空間索引支持的幾何圖形方法在特定條件下,空間索引支持以下面向集合的幾何圖形方法:STContainsO、STDistanceO、STEqualsO、STIntersectsO、STOverlaps()、STTouchesO 和 STWithin。若要使空間索引支持這些方法,必須在查詢的WHERE或JOINON子句中使用這些方法,并且必須在采用如下常規(guī)形式的謂詞中執(zhí)行這些方法:geometry1method_namqgeometry2) com

19、parison_operatorvalid_number若要返回非NULL結(jié)果,geometry1和geometry2必須具有相同的空間引用標(biāo)識(shí)符(SRID)。否則,該方法將返回NULL??臻g索引支持以下謂詞形式:geometry1STContains(geometry2=1geometry1STDistance(geometry2i numbergeometry1STDistance(geometry2=1geometry1STWithin(geometry2i=1空間索引支持的地域方法在某些情況下,空間索引支持以下面向集合的地理方法:STIntersectsO、STEqualsO和STDistanceO。若要使空間索引支持這些方法,必須在查詢的WHERE子句中使用這些方 法,并且必須在采用如下常規(guī)形式的謂詞中執(zhí)行這些方法。geography1method_namqgeography0 comparison_operatorvalid_number若要返回非NULL結(jié)果,geography1和geography2必須具有相同的空間引用標(biāo)識(shí)符 (SRID)。否則,該方法將返回NULL。空間索引支持以下謂詞形式:geography1STIntersects (geography2=1geography1STEquals(ge

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論