Udostępnij za pośrednictwem


Omówienie przestrzennej indeksowania

SQL Server 2008 i nowsze wersje obsługują dane przestrzenne.Obejmuje to obsługę planarny dane przestrzenne typu, geometry, który obsługuje dane geometryczne — punkty, linie i wielokąty — w układzie współrzędnych euklidesowa.Geografia typ danych reprezentuje obiekty geograficzny obszar na powierzchni ziemi, takie jak rozprzestrzenianie się gruntów.Przestrzennej indeksu na Geografia kolumna odwzorowuje dane geograficzne miejsca dwuwymiarowe, non-Euclidean.

Indeks przestrzenny jest zdefiniowany kolumna tabela zawierającej dane przestrzenne ( przestrzennej kolumna).Każdy indeks przestrzenny odnosi się do miejsca skończoną.Na przykład indeks dla geometry kolumna odwołuje się do określonego użytkownika prostokątny obszar na płaszczyźnie.

Decomposing indeksowana w hierarchii siatki

W SQL Server 2008, indeksy przestrzenne zbudowanych przy użyciu drzewa B, co oznacza, że indeksy musi reprezentować 2-wymiarowe dane przestrzenne w sposób liniowy B-drzew.Dlatego przed czytania danych do indeksu przestrzennej, SQL Server 2008 implementuje hierarchiczne dekompozycji jednolitego obszaru.Proces tworzenia indeksu rozkłada się miejsce poziom czterech hierarchii siatki.Poziomy te są określane jako poziom 1 (najwyższy poziom), poziomu 2, poziom 3, i poziom 4.

Każdy poziom kolejnych dalsze rozkłada się poziom, powyżej, dzięki czemu każda komórka szczebla zawiera pełną siatkę na kolejnym poziomie.Na danym poziom, wszystkie siatki mają taką samą liczbę komórek wzdłuż obu osi (na przykład 4 x 4 lub 8 x 8) i komórki są wszystkie jednego rozmiaru.

Na poniższej ilustracji przedstawiono rozkładu dla prawej górnej komórce w każdym poziom hierarchii siatki na siatkę 4 x 4.W rzeczywistości wszystkie komórki są rozłożony w ten sposób.W ten sposób na przykład decomposing miejsce na cztery poziomy siatki 4 x 4 faktycznie daje całkowita 65536 komórek poziom czterech.

Cztery poziomy cyklicznego tworzenia szachownicy

Ostrzeżenie

Dekompozycji miejsce przestrzennej indeksu jest niezależna od jednostki miary, który używa danych aplikacji.

Komórki hierarchii siatki są numerowane w sposób liniowy za pomocą zmienności Hilbert krzywej napełniania miejsca.W rozumieniu ilustracji tej dyskusji używa proste row-wise numerowanie zamiast numerowania jest rzeczywiście wytwarzana przez krzywą Hilbert.Na poniższej ilustracji kilka wielokątów, reprezentujące budynków i w wierszach reprezentujących streets już został umieszczony poziom 1 siatkę 4 x 4.komórka poziom 1 są ponumerowane od 1 do 16, począwszy od lewej górnej komórka.

Wielokąty i linie umieszczone na siatce 4 x 4 pierwszego poziomu

Gęstość siatki

Określa liczbę komórek wzdłuż osi, siatki jego gęstości: im większa liczba, zagęszczenie siatki.Na przykład zagęszczenie niż siatkę 4 x 4 (powstaje 16 komórek) jest Siatka 8 x 8 (powstaje komórek 64).Gęstość siatki jest zdefiniowana na podstawie poziom.

The CREATE SPATIAL INDEX Transact-SQL statement supports a GRIDS clause that enables you to specify different grid densities at different levels.Gęstość siatki dla danego poziom jest określona przy użyciu jednej z następujących słów kluczowych:

Słowo kluczowe

Konfiguracja siatki

Liczba komórek

NISKI

4 X 4

16

ŚREDNI

8 X 8

64

WYSOKA

16 X 16

256

Wartość domyślna to średni na wszystkich poziomach.

Można kontrolować proces rozkładu, określając niedomyślnych siatki gęstości.Na przykład może być przydatne dla indeksu na podstawie rozmiaru indeksowanych miejsca i obiektów kolumna przestrzennej dostrojeniu siatki różnych gęstości na różnych poziomach.

Ostrzeżenie

Siatka gęstości przestrzennej indeksu są widoczne w level_1_grid, level_2_grid, level_3_grid, i level_4_grid kolumny sys.spatial_index_tessellations wykazu widoku.

Tesselacja

Po dekompozycji indeksowana w hierarchii siatki, indeks przestrzenny odczytuje dane z kolumna przestrzennej wiersz po wierszu.Po odczytaniu danych dla obiektu przestrzennej (lub wystąpienie), wykonuje przestrzennej indeksu proces Tesselacja dla tego obiektu.The tessellation processfits the object into the grid hierarchy by associating the object with a set of grid cells that it touches (touched cells).Począwszy od poziom 1 hierarchii siatki przechodzą proces Tesselacja Szerokość pierwszego w poziomie.Potencjalnie, przetwarzanie może być kontynuowane do czterech poziomów, jeden poziom w czas.

Wyjście procesu Tesselacja jest zestaw dotykane komórek, które są rejestrowane w indeksie przestrzennej dla obiektu.Odwołując się do tych komórek zarejestrowane, przestrzennej indeksu można znaleźć obiektu w przestrzeni względem innych obiektów kolumna przestrzennej, które również są przechowywane w indeksie.

Tesselacja reguł

Aby ograniczyć liczbę dotykane komórek, które są rejestrowane dla obiektu, proces Tesselacja dotyczy kilku reguł Tesselacja.Zasady te określają głębokość proces Tesselacja i które dotykane komórek są zapisane w indeksie.

Zasady te są następujące:

  • Reguły obejmującej

    Jeśli obiekt jest całkowicie obejmuje komórki, że komórka jest nazywany objęte przez obiekt.komórka objęte jest liczony i nie jest tessellated.Ta reguła ma zastosowanie na wszystkich poziomach hierarchii siatki.Reguła obejmujący upraszcza proces tesselacji i redukuje ilość danych, rekordy przestrzennej indeksu.

  • Reguła komórek dla obiektów

    Wymusza reguły ograniczyć komórek dla obiektów, która określa maksymalną liczbę komórek, które może być liczony dla każdego obiektu z wyjątkiem poziom 1.Na niższych poziomach reguły komórek dla obiektów kontroluje ilość informacji mogą być rejestrowane informacje o obiektu.

  • Reguła podziałowej komórka

    Reguła podziałowej komórka generuje najlepsze zbliżenia obiektu poprzez rejestrowanie tylko komórka tylko najniższy, które zostały tessellated dla obiektu.Komórki nadrzędnej nie przyczyniają się do zliczania komórek dla obiektów i nie są rejestrowane w indeksie.

Te reguły Tesselacja są rekursywnie każdego siatki poziom.Pozostałej części tej sekcji opisano reguły Tesselacja bardziej szczegółowo.

Reguła obejmujących

Jeśli obiekt jest całkowicie obejmuje komórki, że komórka jest nazywany objęte przez obiekt.Na przykład na poniższej ilustracji, jednej z komórek drugiego poziom 15.11, jest całkowicie objęte środkowa część ośmiokąt.

Optymalizacja pokrywania

komórka objęte jest liczone i zarejestrowana w indeksie i komórka nie jest bardziej tessellated.

Reguła komórek dla obiektów

fragment Tesselacja każdego obiektu zależy przede wszystkim na limitu komórek dla obiektów przestrzennej indeksu.Limit ten określa maksymalną liczbę komórek można policzyć tego Tesselacja na obiekt.Należy jednak zauważyć, że reguła komórek dla obiektów nie są wymuszane dla poziom 1, więc ewentualne przekroczenie tego limitu.Jeśli poziom 1 zliczanie osiąga lub przekracza, komórek na dla obiektów ograniczyć, nie dalszych Tesselacja występuje na niższych poziomach.

Tak długo, jak liczba jest mniejsza niż limit komórek dla obiektów, kontynuuje proces Tesselacja.Poczynając od komórki dotykane najniższy numer (na przykład komórka 15.6 na powyższej ilustracji), proces badania każdej komórki, aby ocenić, czy zlicza on lub ona tessellate.Jeśli tessellating komórki przekroczyłaby limit liczby komórek dla obiektów, komórka jest liczone i nie tessellated.W przeciwnym razie tessellated komórka i są zliczane komórka niższego poziom, które są stykać się obiektu.Tesselacja proces jest kontynuowany w ten sposób breadth-wise, poziom.Ten proces jest powtarzane cyklicznie dla siatki niższego poziom tesselowaną komórek aż osiągnięty zostanie limit lub nie ma żadnych komórek do zliczania.

Na przykład rozważmy poprzedniej ilustracji przedstawiono ośmiokąt całkowicie wkładanej do komórka 15 siatki poziom 1.Na rysunku 15 komórka ma został tessellated, Pincety chirurgiczne ośmiokąt do dziewięciu komórek poziom 2.Na tej ilustracji zakłada, że limit komórek dla obiektów jest co najmniej 9.Gdyby limit komórek dla obiektów 8 lub mniej, jednak komórka 15 nie będzie tessellated i tylko tej komórki 15 będzie liczony dla obiektu.

Domyślnie limit komórek dla obiektów jest 16 komórek na obiekt, który zawiera zadowalającą równowagę między miejsca i precyzji dla większości przestrzennej indeksów.However, the CREATE SPATIAL INDEX Transact-SQL statement supports a CELLS_PER_OBJECT**=**n clause that enables you to specify a cells-per-object limit between 1 and 8192, inclusive.

Ostrzeżenie

Cells_per_object ustawienie przestrzennej indeksu jest widoczna w sys.spatial_index_tessellations wykazu widoku.

Reguła podziałowej komórki

Reguła podziałowej komórki wykorzystuje fakt, że co komórka niższego poziom należy do komórki powyżej: komórka poziom 4 należy do komórki poziomu 3, komórka poziom 3 należy do komórki poziomu 2, a komórki poziomu 2 należy do komórki poziomu 1.Na przykład obiekt, który należy do komórka 1.1.1.1 należy również do komórka 1.1.1, komórce 1.1 i 1.Wiedzy takie relacje hierarchii komórka są wbudowane w procesor kwerend.Dlatego tylko komórki poziom najwyższej podziałowej muszą być rejestrowane w indeksie, minimalizując indeksu musi przechowywać informacje.

Na poniższej ilustracji tessellated jest stosunkowo niewielka Wielokąt rombu.Domyślny komórek dla obiektów limit 16, która nie zostanie osiągnięty dla tego obiektu małych korzysta z indeksu.Dlatego nadal Tesselacja niedziałający poziom 4.Wielokąt znajduje się w następujących 1 poziom do poziomu 3 komórek: 4, 4.4, 4.4.10 i 4.4.14.Jednak korzystanie z reguły podziałowej komórka tesselacji zlicza tylko dwanaście komórka poziom 4: 4.4.10.13-15 i 4.4.14.1-3, 4.4.14.5-7 i 4.4.14.9-11.

Optymalizacja najgłębszej komórki

Tesselacja schematy

Zachowanie indeks przestrzenny zależy częściowo na jego schemat Tesselacja.Schemat Tesselacja jest typ danych określony.W programie SQL Server 2008 indeksy przestrzenne obsługuje dwa schematy Tesselacja:

  • Tesselacja siatki geometrii, który jest schemat dla geometry typu danych.

  • Tesselacja siatki Geografia, które stosuje się do kolumn Geografia typu danych.

Ostrzeżenie

Tessellation_scheme ustawienie przestrzennej indeksu jest widoczna w sys.spatial_index_tessellations wykazu widoku.

Geometria siatki Tesselacja schemat

Tesselacja siatki Geometria jest domyślny schemat Tesselacja dla geometry Typ danych i w SQL Server 2008, jest tylko takie Tesselacja schematu.W tej sekcji omówiono aspekty geometrii Tesselacja siatki, które są odpowiednie do pracy z przestrzennej indeksy: obsługiwane metody i obwiedni.

Ostrzeżenie

You can explicitly specify this tessellation scheme by using the USING GEOMETRY_GRID clause of the CREATE SPATIAL INDEX Transact-SQL statement.

Obsługiwane metody geometrii

Indeks przestrzenny jest przeznaczony do obniżenia kosztów stosowaniu zorientowane na zestaw metod do kolumna przestrzennej, działając jako filtrów na obiekty.geometry Typu danych stanowi wbudowanych metod tworzenia wystąpień geometrii, które opisują obiekty geometryczne i pracy z tych wystąpień.Pod pewnymi warunkami, indeksy przestrzenne obsługuje liczbę geometrii zorientowane na zestaw metod, takich jak STIntersects() i STTouches().

Aby uzyskać więcej informacji o wsparcie udzielane przez indeksy przestrzennej dla metod geometrii, zobacz Geometria metody obsługiwane przez przestrzennej indeksów.

Obwiednia

Dane geometryczne zajmuje płaszczyzny, która może być nieograniczony.W SQL Server 2008, indeks przestrzennej wymaga jednak ograniczone miejsce.Ustanowienie ograniczone miejsce dekompozycji, prostokątne wymaga schematu Tesselacja siatki geometrii pole ograniczenia.pole ograniczenia Jest zdefiniowany przez cztery współrzędne (x-min),y-min) i (x-max),y-max), które są przechowywane jako właściwości indeksu przestrzennej.Współrzędne te reprezentują następujące dane:

  • x-min jest współrzędną x lewym dolnym rogu pole ograniczenia.

  • y-min jest współrzędną y lewym dolnym rogu.

  • x-max jest współrzędną x prawym górnym rogu.

  • y-max jest współrzędną y prawym górnym rogu.

Ostrzeżenie

These coordinates are specified by the BOUNDING_BOX clause of the CREATE SPATIAL INDEX Transact-SQL statement.

(x-min),y-min) i (x-max),y-max) współrzędne określają położenie i wymiary pole ograniczenia.Miejsca poza pole ograniczenia jest traktowana jako pojedynczej komórka numerowanych od 0.

Indeks przestrzenny rozkłada się miejsce wewnątrz pole ograniczenia.Siatka 1 poziom hierarchii siatki wypełnia pole ograniczenia.Aby umieścić obiekt geometryczny w hierarchii siatki, indeks przestrzenny porównuje współrzędnych obiektu do współrzędnych obwiedni.

Na poniższej ilustracji przedstawiono punktów określonych przez (x-min),y-min) i (x-max),y-max) współrzędne pole ograniczenia.Najwyższego poziom hierarchii siatki jest wyświetlany jako Siatka 4 x 4.W rozumieniu ilustracji niższe poziomy są pomijane.Miejsca poza pole ograniczenia jest wskazywane przez zero (0).Uwaga obiektu 'A' częściowo wykracza poza pole i obiekt 'B' leży całkowicie poza polem komórka 0.

Pole ograniczenia pokazujące współrzędne i komórkę 0.

Obwiednia odpowiada niektóre części aplikacji dane przestrzenne.Obwiednia indeksu całkowicie zawiera dane przechowywane kolumna przestrzennej, czy zawiera tylko część jest do aplikacji.Obliczona tylko operacje na obiektach, które są całkowicie wewnątrz pole ograniczenia korzyści pole z indeksu przestrzennej.Dlatego do uzyskania największych korzyści z przestrzennej indeksu na geometry kolumna, należy określić obwiedni zawierającego wszystkie lub większość obiektów.

Ostrzeżenie

Siatka gęstości przestrzennej indeksu są widoczne w bounding_box_xmin, bounding_box_ymin, bounding_box_xmax, i bounding_box_ymax kolumny sys.spatial_index_tessellations wykazu widoku.

Schemat Tesselacja Geografia siatki

Ten schemat Tesselacja dotyczy wyłącznie geography kolumna.Ta sekcja zawiera podsumowanie metod, które są obsługiwane przez Geografia Tesselacja siatki i omówiono sposób geodezyjnej miejsca pojawia się na płaszczyźnie, która następnie jest rozłożony na hierarchii siatki.

Ostrzeżenie

You can explicitly specify this tessellation scheme by using the USING GEOGRAPHY_GRID clause of the CREATE SPATIAL INDEX Transact-SQL statement.

Obsługiwane metody Geografia

The geography data type provides built-in methods for constructing and manipulating geographyinstances that describe geographic objects.Pod pewnymi warunkami indeksy przestrzenne obsługuje następujące metody Geografia zorientowane na zestaw: STIntersects(), STEquals(), and STDistance().Przestrzennej indeksu na geography kolumna Typ danych obiektów filtry i zmniejsza wydajność i kosztu kwerendy stosowania tych metod, aby dane przestrzenne.

Aby uzyskać więcej informacji o wsparcie udzielane przez indeksy przestrzennej dla metod Geografia, zobacz Geografia metody obsługiwane przez przestrzennej indeksów.

Rzut geodezyjnej na płaszczyznę

Obliczenia na geography wystąpień (obiekty) Traktuj na przestrzeń zawierającą obiekty jako geodezyjnej elipsoidalny.Do tego miejsca, schemat Tesselacja siatki Geografia dzieli powierzchni elipsoidalny na jego górną i dolną hemispheres i następnie wykonuje następujące czynności:

  1. Projekty każdego półkuli na aspekty czworoboczne ostrosłupowy.

  2. Spłaszcza dwóch piramidy.

  3. Łączy piramidy spłaszczony do non-Euclidean płaszczyzny.

Ilustracja przedstawia schematycznego widoku dekompozycji trzech kroków procesu.W piramidy linii kropkowanych reprezentujących granice cztery aspektów każdego ostrosłupowy.Kroki 1 i 2 przedstawiają elipsoidalny geodezyjnej, za pomocą zielonej linii poziomej do reprezentowania linii poprzecznego, długości i zielone linie pionowe do reprezentowania kilka wierszy latitude serii.Krok 1 pokazuje piramidy jest przewidywane przez dwóch hemispheres.Krok 2 pokazuje Piramidy są spłaszczane.Krok 3 ilustruje spłaszczonych piramidy po zostały połączone do płaszczyzny, pokazujący liczbę wierszy przewidywanej długości geograficznej.Należy zauważyć, że te wiersze przewidywane są prostowane i różnią się długością w zależności od tego, gdzie znajdą się one na piramidy.

Projekcja elipsy na płaszczyznę

Po na płaszczyźnie obliczony miejsca płaszczyzna jest rozłożony na czterech -poziom hierarchii siatki.Różne poziomy, można użyć siatki różnych gęstości.Na poniższej ilustracji przedstawiono płaszczyzny po ma został rozłożony na siatce 1 poziom 4 x 4.Do celów ilustracji dolnym poziomów hierarchii siatki są pomijane.W rzeczywistości płaszczyzna jest całkowicie rozłożony na czterech -poziom hierarchii siatki.Po zakończeniu procesu dekompozycji dane geograficzne jest odczytu, wiersz po wierszu, z kolumna Geografia i proces Tesselacja jest wykonywane kolejno dla każdego obiektu.

Siatka geograficzna na poziomie 1

Obsługa indeks przestrzenny

Można utworzyć indeks przestrzenny tylko na przestrzennej kolumna.Można utworzyć indeksy przestrzenne na przestrzennej kolumna w tabela, która obsługuje indeksy przestrzenne, a w danej kolumnie przestrzennej można utworzyć wiele indeksów przestrzennej.Aby uzyskać więcej informacji dotyczących ograniczenia przestrzenne indeksy, zobacz Ograniczenia przestrzenne indeksów.