Sdílet prostřednictvím


VYTVOŘIT PROSTOROVÝ INDEX (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vytváří prostorový index na specifikované tabulce a sloupci v SQL Serveru. Index lze vytvořit dříve, než jsou data v tabulce. Indexy lze vytvářet na tabulkách nebo pohledech v jiné databázi zadáním kvalifikovaného názvu databáze. Prostorové indexy vyžadují, aby tabulka měla shlukovaný primární klíč. Prostorové indexy nelze zadat v indexovaných zobrazeních. Informace o prostorových indexech naleznete v tématu Přehled prostorových indexů.

Transact-SQL konvence syntaxe

Syntaxe

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
Je název indexu. Názvy indexů musí být v tabulce jedinečné, ale nemusí být jedinečné v rámci databáze. Názvy indexů musí dodržovat pravidla identifikátorů .

ON <objekt> ( spatial_column_name )
Specifikuje objekt (databázi, schéma nebo tabulku), na kterém má být index vytvořen, a název prostorového sloupce.

spatial_column_name specifikuje prostorový sloupec, na kterém je index založen. V jedné definici prostorového indexu lze specifikovat pouze jeden prostorový sloupec; nicméně na sloupci geometrie nebo geografie lze vytvořit více prostorových indexů.

POUŽÍVAJÍCÍ
Označuje schéma teselace pro prostorový index. Tento parametr používá hodnotu specifickou pro typ, zobrazenou v následující tabulce:

Typ datového sloupce Schéma tesselace
geometry GEOMETRY_GRID
geometry GEOMETRY_AUTO_GRID
geography GEOGRAPHY_GRID
geography GEOGRAPHY_AUTO_GRID

Prostorový index lze vytvořit pouze na sloupci typové geometrie nebo geografie, jinak vzniká chyba. Pokud je předán neplatný parametr pro daný typ, vznikne chyba.

Pro informace o tom, jak SQL Server implementuje tessellaci, viz Přehled prostorových indexů.

ZAPNUTO filegroup_name
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Vytvoří zadaný index pro zadanou skupinu souborů. Pokud není určena žádná lokalita a tabulka není rozdělena na partition, index používá stejnou skupinu souborů jako podkladová tabulka. Skupina souborů už musí existovat.

ZAPNUTO "výchozí"
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Vytvoří zadaný index ve výchozí skupině souborů.

Termín výchozí v tomto kontextu není klíčové slovo. Je to identifikátor pro výchozí skupinu souborů a musí být oddělen, například ON "default" nebo ON [default]. Pokud je uvedeno "výchozí", musí být QUOTED_IDENTIFIER možnost ZAPNUTÁ pro aktuální relaci. Toto je výchozí nastavení. Další informace naleznete v části SET QUOTED_IDENTIFIER (Transact-SQL).

<objekt>::=
Je plně kvalifikovaný nebo neplně kvalifikovaný objekt, který má být indexován.

database_name
Je název databáze.

schema_name
Je název schématu, ke kterému tabulka patří.

table_name
Je název tabulky, která má být indexována.

Azure SQL Database podporuje třídílný formát jmen database_name. [schema_name].object_name když je database_name aktuální databáze nebo database_name je tempdb a object_name začíná na #.

POUŽÍVÁNÍ možností

GEOMETRY_GRID
Specifikuje schéma tesselace geometrie a mřížky, které používáte. GEOMETRY_GRID lze specifikovat pouze na sloupci datového typu geometrie . GEOMETRY_GRID umožňuje ruční úpravu schématu tesselace.

GEOMETRY_AUTO_GRID
Platí na: SQL Server (SQL Server 2012 (11.x) a novší) a Azure SQL Database

Lze specifikovat pouze ve sloupci datového typu geometrie. Toto je výchozí nastavení pro tento typ dat a není nutné to specifikovat.

GEOGRAPHY_GRID
Specifikuje schéma teselace geografické mřížky. GEOGRAPHY_GRID lze specifikovat pouze na sloupci geografického datového typu.

GEOGRAPHY_AUTO_GRID
Platí na: SQL Server (SQL Server 2012 (11.x) a novší) a Azure SQL Database

Lze specifikovat pouze na sloupci geografického datového typu. Toto je výchozí nastavení pro tento typ dat a není nutné to specifikovat.

Možnosti WITH

BOUNDING_BOX
Specifikuje číselnou čtyřtici, která definuje čtyři souřadnice ohraničující krabice: x-min a y-min souřadnice levého dolního rohu a x-max a y-max souřadnice pravého horního rohu.

xmin
Specifikuje x-souřadnici levého dolního rohu ohraničovacího rámečku.

ymin
Specifikuje y-souřadnici levého dolního rohu ohraničovacího rámečku.

xmax
Určuje x-souřadnici pravého horního rohu ohraničovacího rámečku.

ymax
Určuje y-souřadnici pravého horního rohu ohraničovacího rámečku.

XMIN = xmin
Specifikuje název vlastnosti a hodnotu pro x-souřadnici v levém dolním rohu ohraničující krabice.

YMIN =ymin
Specifikuje název vlastnosti a hodnotu pro y-souřadnici levého dolního rohu ohraničovacího rámečku.

XMAX =xmax
Specifikuje název vlastnosti a hodnotu souřadnice x v pravém horním rohu ohraničující krabice.

YMAX = ymax
Specifikuje název vlastnosti a hodnotu pro y-souřadnici pravého horního rohu ohraničující krabice

Poznámka:

Souřadnice ohraničujících boxů platí pouze v rámci klauzule USING GEOMETRY_GRID.

xmax musí být větší než xmin a ymax musí být větší než ymin. Můžete zadat jakoukoli platnou reprezentaci plovoucí hodnoty, za předpokladu: xmax>xmin a ymax>ymin. Jinak se objeví příslušné chyby.

Neexistují žádné výchozí hodnoty.

Názvy vlastností v ohraničujících rámečcích nejsou rozlišující na velká písmena bez ohledu na sortaci databáze.

Pro určení názvů nemovitostí musíte zadat každou z nich jednou a pouze jednou. Můžete je specifikovat v libovolném pořadí. Například následující klauzule jsou ekvivalentní:

  • BOUNDING_BOX =( XMIN =xmin, YMIN =ymin, XMAX =xmax, YMAX =ymax )

  • BOUNDING_BOX =( XMIN =xmin, XMAX =xmax, YMIN =ymin, YMAX =ymax)

ROŠTY
Definuje hustotu mřížky na každé úrovni schématu tesselace. Když jsou vybrány GEOMETRY_AUTO_GRID a GEOGRAPHY_AUTO_GRID, tato možnost je deaktivována.

Informace o teselaci naleznete v Přehledu prostorových indexů.

Parametry GRIDS jsou následující:

LEVEL_1
Specifikuje první úroveň (horní) mřížku.

LEVEL_2
Specifikuje druhou úroveň mřížky.

LEVEL_3
Specifikuje třetí úroveň mřížky.

LEVEL_4
Specifikuje mřížku čtvrté úrovně.

LOW
Specifikuje nejnižší možnou hustotu mřížky na dané úrovni. LOW odpovídá 16 buňkám (mřížka 4x4).

STŘEDNĚ
Specifikuje hustotu středu pro mřížku na dané úrovni. MEDIUM odpovídá 64 buňkám (mřížka 8x8).

HIGH
Určuje nejvyšší možnou hustotu mřížky na dané úrovni. HIGH odpovídá 256 buňkám (mřížka 16x16).

Poznámka:

Použití názvů úrovní vám umožní zadat úrovně v libovolném pořadí a úrovně vynechat. Pokud použijete název pro jakoukoli úroveň, musíte použít název jakékoli jiné úrovně, kterou určíte. Pokud úroveň vynecháte, její hustota se automaticky nastaví na MEDIUM.

Výstraha

Pokud je určena neplatná hustota, vznikne chyba.

CELLS_PER_OBJECT =n
Specifikuje počet teselačních buněk na objekt, které lze použít pro jeden prostorový objekt v indexu procesem tesselace. n může být libovolné celé číslo mezi 1 a 8192 včetně. Pokud je předáno neplatné číslo nebo je číslo větší než maximální počet buněk pro danou tesselaci, vzniká chyba.

CELLS_PER_OBJECT má následující výchozí hodnoty:

Možnost POUŽITÍ Výchozí buňky na objekt
GEOMETRY_GRID 16
GEOMETRY_AUTO_GRID 8
GEOGRAPHY_GRID 16
GEOGRAPHY_AUTO_GRID 12

Na nejvyšší úrovni, pokud objekt pokrývá více buněk, než je specifikováno n, indexování použije tolik buněk, kolik je potřeba k úplné teselaci na nejvyšší úrovni. V takových případech může objekt přijmout více než je stanovený počet buněk. V tomto případě je maximální počet buněk generovaných horní mřížkou, což závisí na hustotě.

Hodnota CELLS_PER_OBJECT se používá v pravidle teselace buněk na objekt. Informace o pravidlech teselace naleznete v přehledu prostorových indexů.

PAD_INDEX = { ON | VYPNUTO }
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Určuje odsazení indexu. Výchozí hodnota je VYPNUTÁ.

ON
Označuje, že procento volného prostoru specifikované fillfactorem je aplikováno na stránky indexu na střední úrovni.

OFF nebo fillfactor není specifikován
Označuje, že stránky střední úrovně jsou téměř na kapacitu zaplněny, přičemž zůstává dostatek místa alespoň pro jeden řádek maximální velikosti, jakou může index mít, s ohledem na sadu klíčů na mezilehlých stránkách.

Možnost PAD_INDEX je užitečná pouze tehdy, když je specifikován FILLFACTOR, protože PAD_INDEX používá procento stanovené FILLFACTOR. Pokud procento uvedené pro FILLFACTOR není dostatečně velké pro jeden řádek, databázový engine interně toto procento přepsává a umožňuje minimální hodnotu. Počet řádků na mezilehlé indexové stránce nikdy není menší než dva, bez ohledu na to, jak nízká je hodnota fillfactoru.

FILLFACTOR = fillfactor
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Určuje procento, které určuje, jak by měl databázový stroj během vytváření nebo opětovného sestavení vytvořit úroveň listu každé stránky indexu. Fillfactor musí být celočíselná hodnota od 1 do 100. Výchozí hodnota je 0. Pokud je fillfactor 100 nebo 0, databázový engine vytváří indexy s listovými stránkami naplněnými až do kapacity.

Poznámka:

Hodnoty výplňového faktoru 0 a 100 jsou ve všech ohledech stejné.

Nastavení FILLFACTOR platí pouze při vytvoření nebo obnovení indexu. Databázový engine dynamicky neuchovává stanovené procento prázdného místa na stránkách. Chcete-li zobrazit nastavení faktoru vyplnění, použijte zobrazení katalogu sys.indexes .

Důležité

Vytvoření shlukovaného indexu s FILLFACTORem menším než 100 ovlivňuje množství úložného prostoru, který data zabírají, protože databázový engine data při vytváření shlukovaného indexu redistribuuje.

Další informace najdete v tématu Určení faktoru vyplnění indexu.

SORT_IN_TEMPDB = { ON | VYPNUTO }
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Specifikuje, zda má dočasné seřazení ukládat v tempdb. Výchozí hodnota je VYPNUTÁ.

ON
Výsledky mezitřídění, které se používají k vytvoření indexu, jsou uloženy v tempdb. To může zkrátit čas potřebný k vytvoření indexu, pokud je tempdb na jiné sadě disků než uživatelská databáze. Tím se ale zvýší množství místa na disku, které se použije při sestavení indexu.

Vypnuto
Výsledky zprostředkujícího řazení jsou uloženy ve stejné databázi jako index.

Kromě místa potřebného v uživatelské databázi pro vytvoření indexu musí mít tempdb přibližně stejný objem volného místa pro uložení výsledků mezitřídění. Pro více informací viz SORT_IN_TEMPDB Option For Indexes.

IGNORE_DUP_KEY =VYPNOUT
Nemá to žádný vliv na prostorové indexy, protože typ indexu nikdy není jedinečný. Nenastavujte tuto možnost na ZAPNUTO, jinak se objeví chyba.

STATISTICS_NORECOMPUTE = { ZAPNUTO | VYPNUTO}
Specifikuje, zda jsou statistiky distribuce přepočítávány. Výchozí hodnota je VYPNUTÁ.

ON
Zastaralé statistiky se automaticky nepřepočítají.

Vypnuto
Jsou povoleny automatické aktualizace statistik.

Pro obnovení automatické aktualizace statistik nastavte STATISTICS_NORECOMPUTE na VYPNUTO, nebo spusťte UPDATE STATISTICS bez klauzule NORECOMPUTE.

Důležité

Vypnutí automatického přepočítání distribučních statistik může zabránit optimalizátoru dotazů vybrat optimální plány provedení pro dotazy týkající se tabulky.

DROP_EXISTING = { ZAPNUTO | VYPNUTO }
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Specifikuje, že pojmenovaný, již existující prostorový index je vynechán a znovu sestaven. Výchozí hodnota je VYPNUTÁ.

ON
Existující index se odstraní a znovu sestaví. Zadaný název indexu musí být stejný jako aktuálně existující index; definici indexu však lze upravit. Můžete například zadat různé sloupce, pořadí řazení, schéma oddílů nebo možnosti indexu.

Vypnuto
Pokud zadaný název indexu již existuje, zobrazí se chyba.

Typ indexu nelze změnit pomocí DROP_EXISTING.

ONLINE = VYPNUTO
Specifikuje, že základní tabulky a přidružené indexy nejsou během operace indexu dostupné pro dotazy a úpravy dat. V této verzi SQL Serveru nejsou online indexové sestavy podporovány pro prostorové indexy. Pokud je tato volba nastavena na ON pro prostorový index, vzniká chyba. Buď vynechejte možnost ONLINE, nebo nastavte ONLINE na VYPNUTO.

Offline indexová operace, která vytvoří, znovu vytvoří nebo zruší prostorový index, získá na stole zámek pro úpravu schématu (Sch-M). Tím zabráníte všem uživatelům přístup k podkladové tabulce po dobu trvání operace.

Poznámka:

Online indexové operace nejsou dostupné ve všech edicích SQL Serveru. Seznam funkcí podporovaných edicemi SQL Serveru najdete v tématu Funkce podporované edicemi SQL Serveru 2016.

ALLOW_ROW_LOCKS = { ZAPNUTO | VYPNUTO }
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Určuje, jestli jsou povolené zámky řádků. Výchozí nastavení je ZAPNUTO.

ON
Zámky řádků jsou povoleny při přístupu k indexu. Databázový stroj určuje, kdy se používají zámky řádků.

Vypnuto
Zámky řádků se nepoužívají.

ALLOW_PAGE_LOCKS = { ON | VYPNUTO }
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Určuje, jestli jsou povolené zámky stránek. Výchozí nastavení je ZAPNUTO.

ON
Zámky stránek jsou povoleny při přístupu k indexu. Databázový stroj určuje, kdy se používají zámky stránek.

Vypnuto
Zámky stránek se nepoužívají.

MAXDOP =max_degree_of_parallelism
Platí na: SQL Server (SQL Server 2008 (10.0.x) a později) a Azure SQL Database

Přepíše možnost konfigurace max degree of parallelism po dobu trvání operace indexu. Pomocí funkce MAXDOP omezte počet procesorů používaných při paralelním provádění plánu. Maximum je 64 procesorů.

Důležité

Ačkoli je možnost MAXDOP syntakticky podporována, CREATE SPATIAL INDEX v současnosti vždy používá pouze jeden procesor.

max_degree_of_parallelism může být:

1
Potlačuje vytvoření paralelního plánu.

>1
Omezuje maximální počet procesorů používaných v paralelní operaci indexu na zadané číslo nebo méně na základě aktuální systémové úlohy.

0 (výchozí)
Používá skutečný počet procesorů nebo méně na základě aktuální systémové úlohy.

Další informace naleznete v tématu Konfigurace paralelních indexových operací.

Poznámka:

Paralelní indexovací operace nejsou k dispozici v každé edici Microsoft SQL Serveru. Seznam funkcí podporovaných edicemi SQL Serveru najdete v tématu Funkce podporované edicemi SQL Serveru 2016.

DATA_COMPRESSION = {ŽÁDNÉ | ŘADA | PAGE}
Platí na: SQL Server (SQL Server 2012 (11.x) a novší) a Azure SQL Database

Určuje úroveň komprese dat používaná indexem.

ŽÁDNÝ
U dat indexu se nepoužívá žádná komprese.

Řádek
Komprese řádků používaná u dat indexem

STRANA
Komprese stránky používaná u dat indexem

Poznámky

Každá možnost může být zadána pouze jednou na příkaz CREATE SPATIAL INDEX. Zadání duplicity jakékoli možnosti vyvolá chybu.

V tabulce můžete vytvořit až 249 prostorových indexů na každém prostorovém sloupci. Vytvoření více než jednoho prostorového indexu na konkrétním prostorovém sloupci může být užitečné například pro indexování různých parametrů tesselace v jednom sloupci.

Důležité

Existuje řada dalších omezení při vytváření prostorového indexu. Pro více informací viz Přehled prostorových indexů.

Indexová sestava nemůže využívat dostupný paralelismus procesů.

Metody podporované na prostorových indexech

Za určitých podmínek prostorové indexy podporují řadu metod geometrie orientované na množiny. Pro více informací viz Přehled prostorových indexů.

Prostorové indexy a rozdělení

Ve výchozím nastavení, pokud je na rozdělené tabulce vytvořen prostorový index, je index rozdělen podle schématu rozdělení tabulky. To zajišťuje, že indexová data a související řádek jsou uloženy ve stejné partition.

V tomto případě, abyste změnili schéma rozdělení základní tabulky, museli byste nejprve odstranit prostorový index, než můžete předělit základní tabulku. Aby se tomuto omezení vyhnulo, při vytváření prostorového indexu můžete zvolit možnost "ON filegroup". Pro více informací viz "Prostorové indexy a souborové skupiny" později v tomto tématu.

Prostorové indexy a souborové skupiny

Ve výchozím nastavení jsou prostorové indexy rozděleny do stejných skupin souborů jako tabulka, na které je index specifikován. To lze přepsat pomocí specifikace souborové skupiny:

[ ON { filegroup_name | "výchozí" } ]
Pokud určíte skupinu souborů pro prostorový index, index se umístí na tuto skupinu, bez ohledu na schéma rozdělení tabulky.

Katalogové pohledy pro prostorové indexy

Následující katalogové pohledy jsou specifické pro prostorové indexy:

sys.spatial_indexes
Představuje hlavní indexovou informaci prostorových indexů.

sys.spatial_index_tessellations
Představuje informace o schématu teselace a parametrech každého z prostorových indexů.

Další poznámky k vytváření rejstříků

Pro více informací o vytváření indexů viz sekce "Poznámky" v CREATE INDEX (Transact-SQL).

Povolení

Uživatel musí mít ALTER oprávnění k tabulce nebo pohledu, nebo být členem role pevného serveru správce systému nebo db_ddladmin role pevné databáze a db_owner fix.

Examples

A. Vytvoření prostorového indexu na sloupci geometrie

Následující příklad vytváří tabulku s názvem SpatialTable obsahující sloupec typu geometrie , geometry_col. Příklad pak vytváří prostorový index SIndx_SpatialTable_geometry_col1, na .geometry_col Příklad používá výchozí schéma tesselace a specifikuje ohraničující rámeček.

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. Vytvoření prostorového indexu na sloupci geometrie

Následující příklad vytváří druhý prostorový index, SIndx_SpatialTable_geometry_col2, na v geometry_col tabulce SpatialTable . Příklad je specifikován GEOMETRY_GRID jako schéma tesselace. Příklad také specifikuje ohraničující rámec, různé hustoty na různých úrovních mřížky a 64 buněk na objekt. Příklad také nastavuje indexové vycpávání 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. Vytvoření prostorového indexu na sloupci geometrie

Následující příklad vytváří třetí prostorový index, SIndx_SpatialTable_geometry_col3, na v geometry_col tabulce SpatialTable . Příklad používá výchozí schéma tesselace. Příklad specifikuje ohraničující rámeček a používá různé hustoty buněk na třetí a čtvrté úrovni, přičemž výchozí počet buněk na objekt je použit.

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. Změna možnosti specifické pro prostorové indexy

Následující příklad znovu vytváří prostorový index vytvořený v předchozím příkladu, , tím, SIndx_SpatialTable_geography_col3že specifikuje novou LEVEL_3 hustotu s DROP_EXISTING = ZAPNUTO.

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. Vytvoření prostorového indexu na geografickém sloupci

Následující příklad vytváří tabulku s názvem SpatialTable2 obsahující sloupec typu geografie , geography_col. Příklad pak vytváří prostorový index SIndx_SpatialTable_geography_col1, na .geography_col Příklad používá výchozí hodnoty parametrů GEOGRAPHY_AUTO_GRID schématu tesselace.

CREATE TABLE SpatialTable2(id int primary key, object GEOGRAPHY);  
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col1
   ON SpatialTable2(object);  

Poznámka:

Pro geografické indexy mřížky nelze specifikovat ohraničující rámec.

F. Vytvoření prostorového indexu na geografickém sloupci

Následující příklad vytváří druhý prostorový index, SIndx_SpatialTable_geography_col2, na v geography_col tabulce SpatialTable2 . Příklad je specifikován GEOGRAPHY_GRID jako schéma tesselace. Příklad také specifikuje různé hustoty mřížky na různých úrovních a 64 buněk na objekt. Příklad také nastavuje indexové vycpávání 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. Vytvoření prostorového indexu na geografickém sloupci

Příklad pak vytváří třetí prostorový index, SIndx_SpatialTable_geography_col3, na v geography_col tabulce SpatialTable2 . Příklad používá výchozí schéma tesselace GEOGRAPHY_GRID a výchozí hodnotu CELLS_PER_OBJECT (16).

CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3  
   ON SpatialTable2(object)  
   WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );  

Viz také

ALTER INDEX (Transact-SQL)
VYTVOŘTE INDEX (Transact-SQL)
CREATE PARTITION FUNCTION (Transact-SQL)
VYTVOŘIT PARTITION SCHEME (Transact-SQL)
VYTVOŘIT STATISTIKY (Transact-SQL)
VYTVOŘIT TABULKU (Transact-SQL)
Datové typy (Transact-SQL)
DB SHOW_STATISTICS CC (Transact-SQL)
DROP INDEX (Transact-SQL)
EVENTDATA (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.indexes (Transact-SQL)
sys.spatial_index_tessellations (Transact-SQL)
sys.spatial_indexes (Transact-SQL)
Přehled prostorových indexů