Udostępnij za pośrednictwem


Przegląd indeksowania przestrzenny

SQL Server 2008 i jego nowszych wersjach obsługują dane przestrzenne.Obejmuje to obsługę typu płaski danych przestrzenny geometry, który obsługuje dane geometryczne — punkty, linie i wielokąty — w ramach Euclidean układu współrzędnych. The geography data type represents geographic objects on an area on the Earth's surface, such as a spread of land.Przestrzennej indeksu na kolumnie lokalizacja geograficzna odwzorowuje dane geograficzne dwuwymiarowych non-Euclidean obszar.

Indeks przestrzennej została zdefiniowana w kolumnie tabela zawierającej dane przestrzenne ( Kolumna przestrzenny).Każdy indeks przestrzennej odnosi się do miejsca ograniczone.Na przykład indeks dla geometry kolumna odwołuje się do określonych przez użytkownika prostokątny obszar na płaszczyznę.

Decomposing indeksowaną obszar w hierarchii siatki

W SQL Server 2008, indeksy przestrzennej zbudowanych przy użyciu drzewa B, co oznacza, że indeksy muszą stanowić 2-wymiarowe dane przestrzenne w kolejności liniowej drzew B. Dlatego też przed czytania danych do indeksu przestrzennej, SQL Server 2008 implementuje hierarchiczne rozkładu jednolitego miejsca. Proces tworzenia indeksu Rozkłada Miejsce na czwartego poziom Hierarchia siatki.Poziomy te są określane jako poziom 1 (najwyższego poziomu), poziom 2, poziom 3, and poziom 4.

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

Na poniższej ilustracji przedstawiono rozkładu dla prawej górnej komórka na każdym poziomie 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 spację do czterech poziomów 4 x 4 siatki faktycznie tworzy sumę komórek poziom czterech 65 536.

Four-levels of recursive tessellation

Uwaga

Rozkład miejsca przestrzennej indeksu jest zależna od jednostki miary, który używa danych aplikacji.

Komórki hierarchii siatki są numerowane w sposób liniowy za pomocą odchylenia krzywej Hilbert wypełnianie obszaru.W celu ich ilustracji tej dyskusji używa row-wise numerowanie, zamiast numerowania rzeczywiście jest wytwarzany przez krzywej Hilbert prosty.Na poniższej ilustracji kilka wielokątów reprezentujące budynków i w wierszach reprezentujących ulic już zostały umieszczone w siatce poziom 1 do 4 x 4.Poziom 1 komórek są numerowane od 1 do 16, począwszy od lewej górnej komórka.

Polygons and lines placed into a 4x4 level-1 grid

Gęstość siatki

Określa liczbę komórek wzdłuż osi, siatki jego gęstość: Im większa liczba, the denser siatki. Siatka 8 x 8 (co daje 64 komórki), to na przykład denser niż siatki 4 x 4 (co daje 16 komórek).Gęstość siatki jest definiowany na podstawie poziom.

The CREATE SPATIAL INDEXTransact-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

NISKA

4 X 4

16

KROKI

8 X 8

64

WYSOKA

16 X 16

256

Wartością domyślną jest średnie na wszystkich poziomach.

Można kontrolować proces rozkładu, określając inną niż domyślna Siatka gęstości.Na przykład może być przydatne w przypadku dostrojeniu indeks na podstawie rozmiaru indeksowanych miejsca i obiektów kolumna przestrzennej gęstości siatki różne na różnych poziomach.

Uwaga

Gęstości siatki przestrzennej indeksu są widoczne w kolumnach level_1_grid level_2_grid, level_3_grid i level_4_grid sys.spatial_index_tessellationsSłuży do wyświetlania katalogu .

Tesselacją

Po rozkładu miejsca indeksowane w hierarchii siatki przestrzennej indeksu odczytuje dane z kolumna przestrzennej wiersz po wierszu.Po przeczytaniu danych dla obiektu przestrzenne (lub wystąpienie), wykonuje przestrzennej indeksu proces tesselacją 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 tesselacją Szerokość pierwszej w poziomie.Potencjalnie, przetwarzanie może być kontynuowane przy użyciu czterech poziomów, jeden poziom w danej chwili.

Dane wyjściowe tesselacją procesu jest zestaw dotknięcia 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 miejscu względem innych obiektów przestrzennej kolumna, które również są przechowywane w indeksie.

Reguły tesselacją

Aby ograniczyć liczbę dotknięcia komórek, które są zarejestrowane dla danego obiektu, proces tesselacją obejmuje kilka reguł tesselacją.Te reguły określają głębokości procesu tesselacją i które dotknięcia komórek są zapisywane w indeksie.

Te zasady są następujące:

  • Reguły obejmującej

    Jeśli obiekt jest całkowicie obejmuje komórki, że komórka jest określane jako objęte przez obiekt.Zalicza się i nie jest tessellated przykryty komórek.Ta reguła stosuje się na wszystkich poziomach hierarchii w siatce.Reguły obejmującej upraszcza proces tesselacją i redukuje ilość danych, które rekordy przestrzennej indeksu.

  • Reguła komórek na obiekt

    Ta reguła wymusza limit komórek na obiekt, która określa maksymalną liczbę komórek, które mogą być liczona dla każdego obiektu, z wyjątkiem poziom 1.Na niższych poziomach reguły komórek dla obiektu określa ilość informacji, które mogą być rejestrowane o obiekcie.

  • Reguła maksymalnym komórka

    Reguła maksymalnym komórka generuje najlepsze zbliżenia obiektu poprzez rejestrowanie tylko komórka tylko dolny większość mają zostać tessellated dla obiektu.Komórki nadrzędnej nie przyczyniają się do zliczania komórek na obiekt, a nie są one rejestrowane w indeksie.

Te reguły tesselacją są rekursywnie zastosowane na każdym poziomie siatki.Pozostałej części tej sekcji opisano reguły tesselacją bardziej szczegółowo.

Reguły obejmującej

Jeśli obiekt jest całkowicie obejmuje komórki, że komórka jest określane jako objęte przez obiekt.Na przykład na poniższej ilustracji jednej z komórek drugiego poziom, 15.11, jest całkowicie ujęty w środkowej części ośmiokąt.

Covering optimization

Przykryty komórka jest obliczane i zapisane w indeksie, a nie tessellated dalszych komórka.

Reguła komórek dla obiektów

Przede wszystkim z zależy od stopnia tesselacją każdego z obiektów limit komórek na obiekt przestrzennej indeksu.Limit ten określa maksymalną liczbę komórek, to tesselacją może policzyć na obiekt.Należy jednak zauważyć, że reguła komórek na obiekt nie są wymuszane dla poziom 1, dzięki czemu istnieje możliwość przekroczenie tego limitu.Poziom-1 zliczanie osiągnie lub przekroczy, ograniczyć komórek na obiekt nie dalsze tesselacją pojawia się na niższych poziomach.

Tak długo, jak liczba jest mniejsza niż limit komórek na obiekcie, tesselacją proces jest kontynuowany.Począwszy od komórki dotknięcia najniższy numer (na przykład komórka 15.6 na powyższej ilustracji), proces sprawdza każdą komórkę, aby ocenić, czy liczba go lub tessellate go.Jeśli tessellating komórka przekroczyłaby limit liczby komórek na obiekt, komórka jest obliczane i nie tessellated.W przeciwnym razie do komórka jest tessellated i są zliczane komórka niższego poziom, które są dotknięciu przez obiekt.Tesselacją proces jest kontynuowany w ten sposób breadth-wise, w poziomie.Ten proces jest powtarzane cyklicznie w przypadku siatek niższego poziom tessellated komórek aż do chwili, kiedy osiągnięty zostanie limit lub nie więcej komórek do zliczania.

Na przykład należy wziąć pod uwagę na powyższej ilustracji, który pokazuje ośmiokąt, która mieści się całkowicie komórka 15 siatki poziom 1.Na rysunku ma już tessellated komórka 15, pincety ośmiokąt do dziewięciu komórek poziom 2.Na rysunku zakłada, że limit komórek na obiekt jest co najmniej 9.Jeżeli limit komórek na obiekt 8 lub mniej, jednak nie może być tessellated komórka 15 i tylko komórka 15 będzie traktowany dla obiektu.

Domyślnie limit komórek na obiekt wynosi 16 komórek na obiekt, który zawiera zadowalające zależność między miejsca i dokładności dla większości przestrzennej indeksów.However, the CREATE SPATIAL INDEXTransact-SQL statement supports a CELLS_PER_OBJECT**=**n clause that enables you to specify a cells-per-object limit between 1 and 8192, inclusive.

Uwaga

The cells_per_object setting of a spatial index is visible in the sys.spatial_index_tessellations catalog view.

Komórka maksymalnym reguły

Reguła maksymalnym komórka wykorzystuje fakt, że każdej komórka niższego poziom należy do komórka nad nią: komórka poziomu należy do komórki poziom 3, komórka poziom 3 należy do komórki poziomu 2, a komórka poziomu 2 należy do komórki poziomu 1. Na przykład obiekt, który należy do komórki 1.1.1.1 należy także do komórki 1.1.1, komórki 1.1, a komórka 1.Wiedzę na temat takiej relacji hierarchii komórka jest wbudowana w procesor kwerend.Dlatego tylko poziom maksymalnym komórki muszą być rejestrowane w indeksie, minimalizując informacje wymagane przez indeks do przechowywania.

Na poniższej ilustracji tessellated jest stosunkowo niewielka wielokąta w kształcie rombu.Indeks używany domyślny komórek na obiekt limit 16, która nie jest osiągnięta dla tego małego obiektu.Dlatego tesselacją kontynuuje na poziom 4.Wielokąt znajduje się w następujących poziom-1 do 3 poziom komórek: 4, 4.4 i 4.4.10 i 4.4.14. Jednak przy użyciu reguły maksymalnym komórka, tesselacją zlicza tylko dwanaście komórka poziom 4: 4.4.10.13-15 4.4.14.1-3, 4.4.14.5-7 i 4.4.14.9-11.

Deepest-cell optimization

Schematy tesselacją

Zachowanie przestrzennej indeksu zależy częściowo na jego Schemat tesselacją.Schemat tesselacją jest typ danych określony.Programu SQL Server 2008 przestrzennej indeksów obsługuje dwa systemy tesselacją:

  • Geometria tesselacją siatki, czyli schematu dla geometry Typ danych.

  • Lokalizacja geograficzna tesselacją siatki, która odnosi się do kolumn lokalizacja geograficzna typ danych.

Uwaga

The tessellation_scheme setting of a spatial index is visible in the sys.spatial_index_tessellations catalog view.

Schemat Tesselacja siatki geometrii

Geometria tesselacją siatki jest domyślny schemat tesselacją dla geometry Typ danych i w polu SQL Server 2008, jest on tylko takie tesselacją systemu. W tej części omówiono aspektów tesselacją siatki geometrii odnoszą się do pracy z indeksów przestrzenny: obsługiwane metody i dopasowania pola.

Uwaga

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

Obsługiwane metody Geometry

Przestrzennej indeksu ma na celu zmniejszenie kosztów stosowanie zorientowane na zestaw metod do kolumna przestrzennej przez działający jako filtr w obiektach.The geometry data type provides built-in methods for constructing geometry instances that describe geometric objects and for working with those instances.Pod pewnymi warunkami przestrzennej indeksów obsługuje szereg metod zorientowane na zestaw geometrii typu STIntersects() i STTouches().

Aby uzyskać więcej informacji na temat udostępniana przez przestrzennej indeksy dla metody geometrii zobacz Metody geometrii obsługiwane przez przestrzennej indeksów.

To pole pole ograniczenia

Dane geometryczne zajmują płaszczyznę, które mogą być nieograniczone.W SQL Server 2008, przestrzennej indeks wymaga jednak ograniczone miejsce. W celu ustalenia ograniczone miejsce rozkładu, prostokątne wymaga schematu tesselacją geometrii siatki pole ograniczenia.pole ograniczenia jest definiowana przez cztery współrzędnych (x-min,y-min) and (x-max,y-max), które są przechowywane jako właściwości przestrzennej indeksu.Współrzędne te reprezentują następujące czynności:

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

  • y-min jest współrzędną y lewego dolnego rogu okna.

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

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

Uwaga

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

The (x-min,y-min) and (x-max,y-max) coordinates determine the placement and dimensions of the pole ograniczenia.Miejsce poza pole ograniczenia jest traktowana jako pojedyncza komórka jest numerem 0.

Indeks przestrzennej rozkłada miejsce wewnątrz pole ograniczenia.Siatka 1 poziom hierarchii siatki wstawia pole ograniczenia.Aby umieścić geometrycznych obiektu w hierarchii siatki, indeks przestrzennej porównuje współrzędnych obiektu na współrzędne obwiedni.

Na poniższej ilustracji przedstawiono zdefiniowane przez punkty (x-min,y-min) and (x-max,y-max) współrzędne pole ograniczenia.Najwyższego poziom w hierarchii siatki jest wyświetlany jako siatkę 4 x 4.W celu ich ilustracji niższe poziomy są pomijane.Miejsce poza pole ograniczenia jest wskazywane przez zero (0).Należy zauważyć, że obiekt "A" częściowo wykracza poza pole i obiektu "B" znajduje się całkowicie poza 0 komórka, w tym polu.

Bounding box showing coordinates and cell 0.

pole ograniczenia odpowiada niektóre części dane przestrzenne aplikacji.Czy obwiedni indeks całkowicie zawiera dane przechowywane kolumna przestrzennej lub zawiera tylko fragment, jest do aplikacji.Tylko operacje są obliczane na obiekty znajdujące się w całości wewnątrz świadczenia pole ograniczenia pola z indeksu przestrzennej.W rezultacie do uzyskania największe korzyści z indeksu przestrzenne na geometry kolumna, należy określić obwiedni pole które zawiera wszystkie lub większość obiektów.

Uwaga

Gęstości siatki przestrzennej indeksu są widoczne w kolumnach bounding_box_xmin bounding_box_ymin, bounding_box_xmax i bounding_box_ymax sys.spatial_index_tessellationsSłuży do wyświetlania katalogu .

Schemat Tesselacja Geografia siatki

Ten schemat tesselacją dotyczy tylko geography Kolumna. Ta sekcja zawiera podsumowanie metod, które są obsługiwane przez tesselacją siatki lokalizacja geograficzna i w tym artykule omówiono sposób geodezyjnej miejsca jest widoczny na płaszczyznę, który następnie jest rozłożony w hierarchii siatki projektora.

Uwaga

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

Obsługiwane metody Geografia

The geography data type provides built-in methods for constructing and manipulating geographyinstances that describe geographic objects.W określonych warunkach przestrzennej indeksów obsługuje następujące metody Geografia zorientowane na zestaw: STIntersects(), STEquals(), a STDistance(). Przestrzennej indeksu w geography kolumna o typie danych filtruje obiekty i zmniejsza wydajność i kwerendy koszt stosowaniu tych metod dane przestrzenne.

Aby uzyskać więcej informacji na temat udostępniana przez przestrzennej indeksy dla metody lokalizacja geograficzna zobacz Geography Methods Supported by Spatial Indexes.

Rzut geodezyjnej miejsca na płaszczyznę

Obliczenia na geography wystąpienia (obiektów) traktuje spacji, zawierającą obiekty jako geodezyjnej elipsoidalny. Do których to miejsce, schemat tesselacją 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ółkulę na aspekty z ostrosłupowymi kwadratowe.

  2. Spłaszcza ostrosłupów dwóch.

  3. Łączy spłaszczone ostrosłupów do utworzenia non-Euclidean płaszczyzny.

Na poniższej ilustracji przedstawiono schemat procesu rozkładu w kroku 3.W ostrosłupów linii kropkowanych reprezentujących granice cztery aspekty z każdego ostrosłupa.Kroki 1 i 2 ilustrują geodezyjnej elipsoidalny, za pomocą zielonej linii poziomej do reprezentowania poprzecznego długości linii i serii zielone linie pionowe do reprezentowania kilka wierszy szerokości.Krok 1 zawiera ostrosłupów, jest przewidywane na dwóch hemispheres.Krok 2 pokazuje ostrosłupów, przy czym spłaszczone.Krok 3 ilustruje spłaszczone ostrosłupów, po ich zostały połączone, tworząc płaszczyznę wyświetlanie wielu wierszy przewidywanych długości.Należy zauważyć, że te wiersze przewidywane są straightened i różne długości, w zależności od tego, gdzie znajdą się one na ostrosłupów.

Projection of the ellipsoid onto a plane

Gdy obszar ma już przewidywane na płaszczyznę, płaszczyzny jest rozłożony w siatce czwartego poziom hierarchii.Różne poziomy, można użyć różnych siatki gęstości.Na poniższej ilustracji przedstawiono płaszczyzny po jej ma został rozłożony na siatkę 1 poziom 4 x 4.W celu jej ilustracji dolny poziomy hierarchii siatki są pomijane.W actuality płaszczyzny pełni jest rozłożony w siatce czwartego poziom hierarchii.Po zakończeniu procesu rozkładu dane geograficzne jest odczytu, wiersz po wierszu, kolumna lokalizacja geograficzna i proces tesselacją jest wykonywane kolejno dla każdego obiektu.

Level-1 geography grid

Przestrzennej indeks pomocy technicznej.

Indeks przestrzennej mogą być tworzone tylko na przestrzennej kolumna.Można tworzyć indeksy przestrzennej na dowolnej przestrzennej kolumna w tabela, która obsługuje indeksy przestrzennej, a w danej kolumnie przestrzennej można utworzyć wiele indeksów przestrzennej.Aby uzyskać więcej informacji na temat ograniczeń na przestrzennej indeksów zobacz Restrictions on Spatial Indexes.