Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Tworzy indeks przestrzenny na określonej tabeli i kolumnie w SQL Server. Indeks można utworzyć zanim dane pojawią się w tabeli. Indeksy można tworzyć na tabelach lub widokach w innej bazie danych, podając kwalifikowaną nazwę bazy. Indeksy przestrzenne wymagają, aby tabela miała klasterizowany klucz główny. Nie można określić indeksów przestrzennych w widokach indeksowanych. Aby uzyskać informacje o indeksach przestrzennych, zobacz Omówienie indeksów przestrzennych.
Transact-SQL konwencje składni
Składnia
CREATE SPATIAL INDEX index_name
ON <object> ( spatial_column_name )
{
<geometry_tessellation> | <geography_tessellation>
}
[ ON { filegroup_name | "default" } ]
[;]
<object> ::=
{ database_name.schema_name.table_name | schema_name.table_name | table_name }
<geometry_tessellation> ::=
{
<geometry_automatic_grid_tessellation>
| <geometry_manual_grid_tessellation>
}
<geometry_automatic_grid_tessellation> ::=
{
[ USING GEOMETRY_AUTO_GRID ]
WITH (
<bounding_box>
[ [,] <tessellation_cells_per_object> [ ,...n] ]
[ [,] <spatial_index_option> [ ,...n] ]
)
}
<geometry_manual_grid_tessellation> ::=
{
[ USING GEOMETRY_GRID ]
WITH (
<bounding_box>
[ [,]<tessellation_grid> [ ,...n] ]
[ [,]<tessellation_cells_per_object> [ ,...n] ]
[ [,]<spatial_index_option> [ ,...n] ]
)
}
<geography_tessellation> ::=
{
<geography_automatic_grid_tessellation> | <geography_manual_grid_tessellation>
}
<geography_automatic_grid_tessellation> ::=
{
[ USING GEOGRAPHY_AUTO_GRID ]
[ WITH (
[ [,] <tessellation_cells_per_object> [ ,...n] ]
[ [,] <spatial_index_option> ]
) ]
}
<geography_manual_grid_tessellation> ::=
{
[ USING GEOGRAPHY_GRID ]
[ WITH (
[ <tessellation_grid> [ ,...n] ]
[ [,] <tessellation_cells_per_object> [ ,...n] ]
[ [,] <spatial_index_option> [ ,...n] ]
) ]
}
<bounding_box> ::=
{
BOUNDING_BOX = ( {
xmin, ymin, xmax, ymax
| <named_bb_coordinate>, <named_bb_coordinate>, <named_bb_coordinate>, <named_bb_coordinate>
} )
}
<named_bb_coordinate> ::= { XMIN = xmin | YMIN = ymin | XMAX = xmax | YMAX=ymax }
<tessellation_grid> ::=
{
GRIDS = ( { <grid_level> [ ,...n ] | <grid_size>, <grid_size>, <grid_size>, <grid_size> }
)
}
<tessellation_cells_per_object> ::=
{
CELLS_PER_OBJECT = n
}
<grid_level> ::=
{
LEVEL_1 = <grid_size>
| LEVEL_2 = <grid_size>
| LEVEL_3 = <grid_size>
| LEVEL_4 = <grid_size>
}
<grid_size> ::= { LOW | MEDIUM | HIGH }
<spatial_index_option> ::=
{
PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = OFF
| STATISTICS_NORECOMPUTE = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = OFF
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
| DATA_COMPRESSION = { NONE | ROW | PAGE }
}
Arguments
index_name
To nazwa indeksu. Nazwy indeksów muszą być unikalne w tabeli, ale nie muszą być unikalne w bazie danych. Nazwy indeksów muszą być zgodne z regułami identyfikatorów.
Obiekt> ON <( spatial_column_name )
Określa obiekt (bazę danych, schemat lub tabelę), na którym ma być utworzony indeks, oraz nazwę kolumny przestrzennej.
spatial_column_name określa kolumnę przestrzenną, na której opiera się indeks. W jednej definicji indeksu przestrzennego można określić tylko jedną kolumnę przestrzenną; jednak na kolumnie geometrii lub geografii można utworzyć wiele indeksów przestrzennych.
ZA POMOCĄ
Wskazuje schemat tesselacji dla indeksu przestrzennego. Ten parametr wykorzystuje wartość specyficzną dla typu, przedstawioną w poniższej tabeli:
| Typ danych kolumny | Schemat tesselacji |
|---|---|
| geometry | GEOMETRY_GRID |
| geometry | GEOMETRY_AUTO_GRID |
| geography | GEOGRAPHY_GRID |
| geography | GEOGRAPHY_AUTO_GRID |
Indeks przestrzenny może być utworzony tylko na kolumnie geometrii typu lub geografii, w przeciwnym razie pojawia się błąd. Jeśli zostanie przekazany nieprawidłowy parametr dla danego typu, zgłaszany jest błąd.
Aby uzyskać informacje o tym, jak SQL Server implementuje tesselację, zobacz Przegląd indeksów przestrzennych.
W filegroup_name
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Tworzy określony indeks w określonej grupie plików. Jeśli nie podano lokalizacji i tabela nie jest podzielona na partycjonowanie, indeks korzysta z tej samej grupy plików co tabela bazowa. Grupa plików musi już istnieć.
W POZYCJI "default"
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Tworzy określony indeks w domyślnej grupie plików.
Termin domyślny w tym kontekście nie jest słowem kluczowym. Jest to identyfikator domyślnej grupy plików i musi być ograniczony, np. ON "default" lub ON [default]. Jeśli określono "domyślne", opcja QUOTED_IDENTIFIER musi być WŁĄCZONA dla bieżącej sesji. Jest to ustawienie domyślne. Aby uzyskać więcej informacji, zobacz SET QUOTED_IDENTIFIER (Transact-SQL).
<obiekt>::=
Czy obiekt w pełni kwalifikowany czy niew pełni kwalifikowany ma być indeksowany.
database_name
To nazwa bazy danych.
schema_name
To nazwa schematu, do którego należy ta tabela.
table_name
To nazwa tabeli, którą ma się indeksować.
Azure SQL Database obsługuje trzyczęściowy format nazw database_name. [schema_name].object_name gdy database_name to aktualna baza danych lub database_name to tempdb, a object_name zaczyna się od #.
UŻYWANIE opcji
GEOMETRY_GRID
Określa schemat tesselacji siatki geometrycznej , którego używasz. GEOMETRY_GRID można określić tylko na kolumnie typu danych geometrii . GEOMETRY_GRID umożliwia ręczną regulację schematu tesselacji.
GEOMETRY_AUTO_GRID
Dotyczy do: SQL Server (SQL Server 2012 (11.x) i nowszy) oraz Azure SQL Database
Można je określić tylko na kolumnie typu danych geometrycznego. Jest to domyślny dla tego typu danych i nie wymaga tego określenia.
GEOGRAPHY_GRID
Określa schemat mozaikowania siatki geograficznej. GEOGRAPHY_GRID można określić tylko na kolumnie typu danych geograficznych .
GEOGRAPHY_AUTO_GRID
Dotyczy do: SQL Server (SQL Server 2012 (11.x) i nowszy) oraz Azure SQL Database
Można to określić tylko na kolumnie typu danych geograficznych. Jest to domyślny dla tego typu danych i nie wymaga tego określenia.
Z opcjami
BOUNDING_BOX
Określa numeryczną czter-krotkę, która definiuje cztery współrzędne ramki ograniczającej: współrzędne x-min i y-min w lewym dolnym rogu oraz współrzędne x-max i y-max w prawym górnym rogu.
xmin
Określa współrzędną x w lewym dolnym rogu ramki ograniczającej.
ymin
Określa współrzędną y lewego dolnego rogu ramki ograniczającej.
xmax
Określa współrzędną x w prawym górnym rogu ramki ograniczającej.
ymax
Określa współrzędną y prawego górnego rogu ramki ograniczającej.
XMIN = xmin
Określa nazwę właściwości oraz wartość współrzędnej x w lewym dolnym rogu ramki ograniczającej.
YMIN =ymin
Określa nazwę właściwości i wartość współrzędnej y w lewym dolnym rogu ramki ograniczającej.
XMAX =xmax
Określa nazwę właściwości i wartość współrzędnej x w prawym górnym rogu ramki ograniczającej.
YMAX = ymax
Określa nazwę i wartość właściwości współrzędnej y w prawym górnym rogu ramki ograniczającej
Uwaga / Notatka
Współrzędne ramek ograniczających mają zastosowanie tylko w klauzuli USING GEOMETRY_GRID.
xmax musi być większy niż xmin , a ymax musi być większy niż ymin. Możesz określić dowolną poprawną reprezentację wartości float , zakładając, że: xmax>xmin i ymax>ymin. W przeciwnym razie pojawiają się odpowiednie błędy.
Nie ma wartości domyślnych.
Nazwy właściwości w ramkach ograniczających są niezależne od wielkości wielkej litery, niezależnie od sortacji bazy danych.
Aby określić nazwy właściwości, musisz podać każdą z nich raz i tylko raz. Możesz je określić w dowolnej kolejności. Na przykład następujące klauzule są równoważne:
BOUNDING_BOX =( XMIN =xmin, YMIN =ymin, XMAX =xmax, YMAX =ymax )
BOUNDING_BOX =( XMIN =xmin, XMAX =xmax, YMIN =ymin, YMAX =ymax)
SIATKI
Definiuje gęstość siatki na każdym poziomie schematu tesselacji. Gdy wybrane są GEOMETRY_AUTO_GRID i GEOGRAPHY_AUTO_GRID, ta opcja jest wyłączona.
Informacje o tesselacji można znaleźć w Przeglądzie indeksów przestrzennych.
Parametry GRIDS są następujące:
LEVEL_1
Określa siatkę pierwszego poziomu (górnej).
LEVEL_2
Określa siatkę drugiego poziomu.
LEVEL_3
Określa siatkę trzeciego poziomu.
LEVEL_4
Określa siatkę czwartego poziomu.
Niski
Określa najniższą możliwą gęstość siatki na danym poziomie. LOW to 16 komórek (siatka 4x4).
ŚREDNI
Określa gęstość średniego dla siatki na danym poziomie. MEDIUM odpowiada 64 komórkom (siatka 8x8).
HIGH
Określa najwyższą możliwą gęstość siatki na danym poziomie. HIGH daje 256 komórek (siatka 16x16).
Uwaga / Notatka
Używanie nazw poziomów pozwala określić poziomy w dowolnej kolejności i pominąć poziomy. Jeśli używasz nazwy dla dowolnego poziomu, musisz użyć nazwy dowolnego innego poziomu, który określisz. Jeśli pominiesz poziom, jego gęstość domyślnie wynosi ŚREDNIĄ.
Ostrzeżenie
Jeśli podana zostanie nieprawidłowa gęstość, pojawia się błąd.
CELLS_PER_OBJECT =n
Określa liczbę komórek tesselacji na obiekt, które mogą być użyte dla pojedynczego obiektu przestrzennego w indeksie poprzez proces tesselacji.
n może być dowolną liczbą całkowitą od 1 do 8192, włącznie. Jeśli zostanie przekazana nieprawidłowa liczba lub liczba ta jest większa niż maksymalna liczba komórek dla określonej teselacji, pojawia się błąd.
CELLS_PER_OBJECT ma następujące wartości domyślne:
| Opcja UŻYWANIA | Domyślne komórki na obiekt |
|---|---|
| GEOMETRY_GRID | 16 |
| GEOMETRY_AUTO_GRID | 8 |
| GEOGRAPHY_GRID | 16 |
| GEOGRAPHY_AUTO_GRID | 12 |
Na najwyższym poziomie, jeśli obiekt obejmuje więcej komórek niż określono przez n, indeksowanie wykorzystuje tyle komórek, ile jest potrzebne, aby zapewnić pełną teselację na najwyższym poziomie. W takich przypadkach obiekt może otrzymać więcej niż określoną liczbę komórek. W tym przypadku maksymalna liczba to liczba komórek generowanych przez siatkę najwyższego poziomu, która zależy od gęstości.
Wartość CELLS_PER_OBJECT jest używana przez regułę tesselacji komórek na obiekt. Informacje o regułach tesselacji można znaleźć w artykule Przegląd indeksów przestrzennych.
PAD_INDEX = { ON | WYŁĄCZ }
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Określa dopełnienie indeksu. Wartość domyślna to WYŁĄCZONE.
ON
Oznacza, że procent wolnej przestrzeni określony przez fillfactor jest stosowany do stron indeksu na poziomie średnim.
OFF ani fillfactor nie są określone
Oznacza, że strony poziomu średniego są wypełnione do prawie pełnej możliwości, pozostawiając wystarczająco dużo miejsca na co najmniej jeden wiersz o maksymalnym rozmiarze, jaki może mieć indeks, biorąc pod uwagę zestaw kluczy na stronach pośrednich.
Opcja PAD_INDEX jest użyteczna tylko wtedy, gdy podano FILLFACTOR, ponieważ PAD_INDEX wykorzystuje procent określony przez FILLFACTOR. Jeśli procent określony dla FILLFACTOR nie jest wystarczająco duży, by umożliwić jeden wiersz, silnik bazy danych wewnętrznie nadpisuje ten procent, aby uwzględnić minimum. Liczba wierszy na stronie indeksu pośredniego nigdy nie jest mniejsza niż dwa, niezależnie od tego, jak niska jest wartość wypełnienia.
WYPEŁNIENIE = WYPEŁNIENIE
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Określa wartość procentową wskazującą, jak pełny aparat bazy danych powinien ustawić poziom liścia każdej strony indeksu podczas tworzenia lub odbudowy indeksu. Współczynnik wypełnienia musi być wartością całkowitą od 1 do 100. Wartość domyślna to 0. Jeśli współczynnik wypełnienia wynosi 100 lub 0, silnik bazy danych tworzy indeksy z listami wypełnionymi do końca.
Uwaga / Notatka
Wartości współczynnika wypełnienia 0 i 100 są takie same we wszystkich aspektach.
Ustawienie FILLFACTOR obowiązuje tylko wtedy, gdy indeks zostanie utworzony lub odtworzony. Silnik bazy danych nie utrzymuje dynamicznie określonego procentu pustej przestrzeni na stronach. Aby wyświetlić ustawienie współczynnika wypełnienia, użyj widoku wykazu sys.indexes .
Ważne
Utworzenie klastrowanego indeksu z FILLFACTOREM mniejszym niż 100 wpływa na ilość miejsca pamięci danych, ponieważ silnik bazy danych redystrybuuje dane podczas tworzenia klastrowanego indeksu.
Aby uzyskać więcej informacji, zobacz Określanie współczynnika wypełnienia dla indeksu.
SORT_IN_TEMPDB = { ON | WYŁĄCZ }
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Określa, czy tymczasowe wyniki sortowania mają być przechowywane w tempdb. Wartość domyślna to WYŁĄCZONE.
ON
Wyniki pośredniego sortowania, które są używane do budowy indeksu, są przechowywane w tempdb. Może to skrócić czas potrzebny na utworzenie indeksu, jeśli tempdb znajduje się na innym zestawie dysków niż baza danych użytkownika. Zwiększa to jednak ilość miejsca na dysku używanego podczas kompilacji indeksu.
OFF
Wyniki sortowania pośredniego są przechowywane w tej samej bazie danych co indeks.
Oprócz miejsca potrzebnego w bazie danych użytkownika do utworzenia indeksu, tempdb musi mieć mniej więcej tyle samo wolne miejsca, aby przechowywać wyniki pośredniego sortowania. Więcej informacji można znaleźć w SORT_IN_TEMPDB Opcja Indeksów.
IGNORE_DUP_KEY =WYŁĄCZ
Nie ma to wpływu na indeksy przestrzenne, ponieważ typ indeksu nigdy nie jest unikalny. Nie ustawiaj tej opcji na WŁĄCZONE, bo pojawi się błąd.
STATISTICS_NORECOMPUTE = { ON | WYŁĄCZONE}
Określa, czy statystyki rozkładu są ponownie obliczane. Wartość domyślna to WYŁĄCZONE.
ON
Nieaktualne statystyki nie są automatycznie ponownie obliczane.
OFF
Automatyczne aktualizowanie statystyk jest włączone.
Aby przywrócić automatyczne aktualizowanie statystyk, ustaw STATISTICS_NORECOMPUTE na OFF lub wykonaj UPDATE STATISTICS bez klauzuli NORECOMPUTE.
Ważne
Wyłączenie automatycznego ponownego obliczania statystyk rozkładu może uniemożliwić optymalizatorowi optymalnego wyboru planów wykonania dla zapytań dotyczących tabeli.
DROP_EXISTING = { WŁĄCZONO | WYŁĄCZ }
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Określa, że nazwany, istniejący indeks przestrzenny jest usuwany i odtworzony. Wartość domyślna to WYŁĄCZONE.
ON
Istniejący indeks jest porzucany i odbudowywany. Określona nazwa indeksu musi być taka sama jak aktualnie istniejący indeks; można jednak zmodyfikować definicję indeksu. Można na przykład określić różne kolumny, kolejność sortowania, schemat partycji lub opcje indeksu.
OFF
Jeśli określona nazwa indeksu już istnieje, zostanie wyświetlony błąd.
Typu indeksu nie można zmienić za pomocą DROP_EXISTING.
ONLINE =WYŁĄCZ
Określa, że tabele bazowe i powiązane indeksy nie są dostępne do zapytań i modyfikacji danych podczas operacji indeksowej. W tej wersji SQL Server kompilacje indeksów online nie są obsługiwane dla indeksów przestrzennych. Jeśli ta opcja jest ustawiona na ON dla indeksu przestrzennego, pojawia się błąd. Albo pomiń opcję ONLINE, albo ustaw ONLINE na WYŁĄCZONE.
Operacja indeksu offline, która tworzy, odbudowuje lub usuwa indeks przestrzenny, uzyskuje blokadę modyfikacji schematu (Sch-M) na stole. Zapobiega to dostępowi wszystkich użytkowników do tabeli bazowej przez czas trwania operacji.
Uwaga / Notatka
Operacje indeksu online nie są dostępne we wszystkich edycjach SQL Server. Aby uzyskać listę funkcji obsługiwanych przez wersje programu SQL Server, zobacz Features Supported by the Editions of SQL Server 2016.
ALLOW_ROW_LOCKS = { ON | WYŁĄCZ }
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Określa, czy blokady wierszy są dozwolone. Domyślnie jest WŁĄCZONE.
ON
Blokady wierszy są dozwolone podczas uzyskiwania dostępu do indeksu. Aparat bazy danych określa, kiedy są używane blokady wierszy.
OFF
Blokady wierszy nie są używane.
ALLOW_PAGE_LOCKS = { ON | WYŁĄCZ }
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Określa, czy blokady strony są dozwolone. Domyślnie jest WŁĄCZONE.
ON
Blokady stron są dozwolone podczas uzyskiwania dostępu do indeksu. Aparat bazy danych określa, kiedy są używane blokady strony.
OFF
Blokady stron nie są używane.
MAXDOP =max_degree_of_parallelism
Dotyczy do: SQL Server (SQL Server 2008 (10.0.x) i nowszy) oraz Azure SQL Database
Opcja konfiguracji max degree of parallelism jest zastępowana na czas trwania operacji indeksowania. Użyj opcji MAXDOP, aby ograniczyć liczbę procesorów używanych w równoległym wykonywaniu planu. Maksymalna wartość to 64 procesory.
Ważne
Chociaż opcja MAXDOP jest obsługiwana składniowo, CREATE SPATIAL INDEX obecnie zawsze korzysta tylko z jednego procesora.
max_degree_of_parallelism może to być:
1
Zatrzymuje generowanie planu równoległego.
>1
Ogranicza maksymalną liczbę procesorów używanych w operacji indeksowania równoległego do określonej liczby lub mniejszej na podstawie bieżącego obciążenia systemu.
0 (wartość domyślna)
Używa rzeczywistej liczby procesorów lub mniej na podstawie bieżącego obciążenia systemu.
Aby uzyskać więcej informacji, zobacz Konfigurowanie operacji indeksu równoległego.
Uwaga / Notatka
Operacje indeksowania równoległego nie są dostępne w każdej wersji programu Microsoft SQL Server. Aby uzyskać listę funkcji obsługiwanych przez wersje programu SQL Server, zobacz Features Supported by the Editions of SQL Server 2016.
DATA_COMPRESSION = {BRAK | RZĄD | PAGE}
Dotyczy do: SQL Server (SQL Server 2012 (11.x) i nowszy) oraz Azure SQL Database
Określa poziom kompresji danych używany przez indeks.
ŻADEN
Indeks nie użył kompresji danych
RZĄD
Kompresja wierszy stosowana dla danych za pomocą indeksu
PAGE
Kompresja strony stosowana na danych przez indeks
Uwagi
Każda opcja może być określona tylko raz na każde polecenie CREATE SPATIAL INDEX. Określenie duplikatu dowolnej opcji powoduje wystąpienie błędu.
Możesz utworzyć do 249 indeksów przestrzennych na każdej kolumnie przestrzennej w tabeli. Tworzenie więcej niż jednego indeksu przestrzennego na konkretnej kolumnie przestrzennej może być przydatne, na przykład do indeksowania różnych parametrów tesselacji w jednej kolumnie.
Ważne
Istnieje szereg innych ograniczeń dotyczących tworzenia indeksu przestrzennego. Więcej informacji można znaleźć w przeglądzie indeksów przestrzennych.
Build indeksowy nie może wykorzystać dostępnego równoległości procesów.
Metody wspierane na indeksach przestrzennych
W pewnych warunkach indeksy przestrzenne obsługują wiele metod geometrii zorientowanej na zbiory. Więcej informacji można znaleźć w przeglądzie indeksów przestrzennych.
Indeksy przestrzenne i podziały
Domyślnie, jeśli na tabeli podzielonej zostanie utworzony indeks przestrzenny, indeks jest partycjonowany zgodnie ze schematem podziałów tabeli. Zapewnia to, że dane indeksowe i powiązany wiersz są przechowywane w tej samej partycji.
W takim przypadku, aby zmienić schemat podziałów tabeli bazowej, musiałbyś usunąć indeks przestrzenny, zanim będziesz mógł ponownie podzielić tabelę bazową. Aby uniknąć tego ograniczenia, podczas tworzenia indeksu przestrzennego możesz wybrać opcję "ON filegroup". Więcej informacji można znaleźć w sekcji "Indeksy przestrzenne i grupy plików", później w tym temacie.
Indeksy przestrzenne i grupy plików
Domyślnie indeksy przestrzenne są podzielone na te same grupy plików co tabela, na której określony jest indeks. Można to nadpisać, stosując specyfikację grupy plików:
[ ON { filegroup_name | "domyślne" } ]
Jeśli określisz grupę plików dla indeksu przestrzennego, indeks jest umieszczany na tej grupie plików, niezależnie od schematu partycjonowania tabeli.
Widoki katalogowe dla indeksów przestrzennych
Poniższe widoki katalogowe są specyficzne dla indeksów przestrzennych:
sys.spatial_indexes
Reprezentuje główną informację indeksową indeksów przestrzennych.
sys.spatial_index_tessellations
Reprezentuje informacje o schemacie tesselacji oraz parametrach każdego z indeksów przestrzennych.
Dodatkowe uwagi dotyczące tworzenia indeksów
Więcej informacji o tworzeniu indeksów można znaleźć w sekcji " Uwagi" w CREATE INDEX (Transact-SQL).
Permissions
Użytkownik musi mieć ALTER uprawnienia do tabeli lub widoku, albo być członkiem roli stałego serwera administratora systemu lub db_ownerdb_ddladmin ról stałej bazy danych.
Przykłady
A. Tworzenie indeksu przestrzennego na kolumnie geometrii
Poniższy przykład tworzy tabelę o nazwie SpatialTable zawierającą kolumnę typu geometrycznego , geometry_col. Przykład następnie tworzy indeks przestrzenny, SIndx_SpatialTable_geometry_col1, na .geometry_col Przykład wykorzystuje domyślny schemat tesselacji i określa ramkę ograniczającą.
CREATE TABLE SpatialTable(id int primary key, geometry_col geometry);
CREATE SPATIAL INDEX SIndx_SpatialTable_geometry_col1
ON SpatialTable(geometry_col)
WITH ( BOUNDING_BOX = ( 0, 0, 500, 200 ) );
B. Tworzenie indeksu przestrzennego na kolumnie geometrii
Poniższy przykład tworzy drugi indeks przestrzenny, SIndx_SpatialTable_geometry_col2, na w tabeli geometry_colSpatialTable . Przykład określa GEOMETRY_GRID schemat tesselacji. Przykład określa również ramkę ograniczającą, różne gęstości na różnych poziomach siatki oraz 64 komórki na obiekt. Przykład również ustawia dopełnienie indeksu na .ON
CREATE SPATIAL INDEX SIndx_SpatialTable_geometry_col2
ON SpatialTable(geometry_col)
USING GEOMETRY_GRID
WITH (
BOUNDING_BOX = ( xmin=0, ymin=0, xmax=500, ymax=200 ),
GRIDS = (LOW, LOW, MEDIUM, HIGH),
CELLS_PER_OBJECT = 64,
PAD_INDEX = ON );
C. Tworzenie indeksu przestrzennego na kolumnie geometrii
Poniższy przykład tworzy trzeci indeks przestrzenny, SIndx_SpatialTable_geometry_col3, na w tabeli geometry_colSpatialTable . Przykład wykorzystuje domyślny schemat tesselacji. Przykład określa ramkę ograniczającą i używa różnych gęstości komórek na trzecim i czwartym poziomie, przy domyślnej liczbie komórek na obiekt.
CREATE SPATIAL INDEX SIndx_SpatialTable_geometry_col3
ON SpatialTable(geometry_col)
WITH (
BOUNDING_BOX = ( 0, 0, 500, 200 ),
GRIDS = ( LEVEL_4 = HIGH, LEVEL_3 = MEDIUM ) );
D. Zmiana opcji specyficznej dla indeksów przestrzennych
Poniższy przykład odbudowuje indeks przestrzenny utworzony w poprzednim przykładzie, SIndx_SpatialTable_geography_col3, określając nową LEVEL_3 gęstość z DROP_EXISTING = ON.
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
ON SpatialTable(geography_col)
WITH ( BOUNDING_BOX = ( 0, 0, 500, 200 ),
GRIDS = ( LEVEL_3 = LOW ),
DROP_EXISTING = ON );
E. Tworzenie indeksu przestrzennego na kolumnie geograficznej
Poniższy przykład tworzy tabelę o nazwie SpatialTable2 zawierającą kolumnę typu geograficznego , geography_col. Przykład następnie tworzy indeks przestrzenny, SIndx_SpatialTable_geography_col1, na .geography_col Przykład wykorzystuje domyślne wartości parametrów GEOGRAPHY_AUTO_GRID schematu tesselacji.
CREATE TABLE SpatialTable2(id int primary key, object GEOGRAPHY);
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col1
ON SpatialTable2(object);
Uwaga / Notatka
Dla indeksów siatki geograficznej nie można określić ramki ograniczającej.
F. Tworzenie indeksu przestrzennego na kolumnie geograficznej
Poniższy przykład tworzy drugi indeks przestrzenny, SIndx_SpatialTable_geography_col2, na w tabeli geography_colSpatialTable2 . Przykład określa GEOGRAPHY_GRID schemat tesselacji. Przykład określa również różne gęstości siatki na różnych poziomach oraz 64 komórki na obiekt. Przykład również ustawia dopełnienie indeksu na .ON
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col2
ON SpatialTable2(object)
USING GEOGRAPHY_GRID
WITH (
GRIDS = (MEDIUM, LOW, MEDIUM, HIGH ),
CELLS_PER_OBJECT = 64,
PAD_INDEX = ON );
G. Tworzenie indeksu przestrzennego na kolumnie geograficznej
Przykład tworzy następnie trzeci indeks przestrzenny, SIndx_SpatialTable_geography_col3, na w tabeli SpatialTable2geography_col. Przykład wykorzystuje domyślny schemat tesselacji, GEOGRAPHY_GRID, oraz domyślną wartość CELLS_PER_OBJECT (16).
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
ON SpatialTable2(object)
WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );
Zobacz także
INDEKS ALTERA (Transact-SQL)
STWÓRZ INDEKS (Transact-SQL)
FUNKCJA TWORZENIA PARTYCJI (Transact-SQL)
UTWÓRZ SCHEMAT PARTYCJI (Transact-SQL)
UTWÓRZ STATYSTYKI (Transact-SQL)
CREATE TABLE (Transact-SQL)
typy danych (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
UPUŚĆ INDEKS (Transact-SQL)
DANE ZDARZEŃ (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.indexes (Transact-SQL)
sys.spatial_index_tessellations (Transact-SQL)
sys.spatial_indexes (Transact-SQL)
Omówienie indeksów przestrzennych