SKAPA RUMSLIGT INDEX (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Skapar ett rumsligt index i en specificerad tabell och kolumn i SQL Server. Ett index kan skapas innan det finns data i tabellen. Index kan skapas på tabeller eller vyer i en annan databas genom att ange ett kvalificerat databasnamn. Rumsliga index kräver att tabellen har en klustrad primärnyckel. Rumsliga index kan inte anges i indexerade vyer. Information om rumsliga index finns i Översikt över rumsliga index.

Transact-SQL syntaxkonventioner

Syntax

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
Det är namnet på indexet. Indexnamn måste vara unika i en tabell men behöver inte vara unika i en databas. Indexnamn måste följa reglerna för identifierare.

PÅ <objekt> ( spatial_column_name )
Specificerar objektet (databas, schema eller tabell) på vilket indexet ska skapas samt namnet på den rumsliga kolumnen.

spatial_column_name specificerar den rumsliga kolumn som indexet baseras på. Endast en rumslig kolumn kan specificeras i en enda rumslig indexdefinition; dock kan flera rumsliga index skapas på en geometri - eller geografikolumn .

ANVÄNDANDE
Anger tesselleringsschemat för det rumsliga indexet. Denna parameter använder det typspecifika värdet, som visas i följande tabell:

Datatyp av kolumn Tesselleringsschema
geometry GEOMETRY_GRID
geometry GEOMETRY_AUTO_GRID
geography GEOGRAPHY_GRID
geography GEOGRAPHY_AUTO_GRID

Ett rumsligt index kan endast skapas på en kolumn med typgeometri eller geografi, annars uppstår ett fel. Om en ogiltig parameter för en given typ passeras, uppstår ett fel.

För information om hur SQL Server implementerar tessellering, se Spatial Indexes Overview.

filegroup_name
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Skapar det angivna indexet för den angivna filgruppen. Om ingen plats anges och tabellen inte är partitionerad använder indexet samma filgrupp som den underliggande tabellen. Filgruppen måste redan finnas.

PÅ "standard"
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Skapar det angivna indexet för standardfilgruppen.

Termen default är i detta sammanhang inte ett nyckelord. Det är en identifierare för standardfilgruppen och måste avgränsas, som i PÅ "standard" eller PÅ [standard]. Om "standard" anges måste QUOTED_IDENTIFIER-alternativet vara PÅ för den aktuella sessionen. Det här är standardinställningen. Mer information finns i SET QUOTED_IDENTIFIER (Transact-SQL).

<objekt>::=
Är det fullt kvalificerade eller icke-fullt kvalificerade objektet som ska indexeras?

database_name
Är namnet på databasen.

schema_name
Är namnet på schemat som tabellen tillhör.

table_name
Är namnet på tabellen som ska indexeras?

Azure SQL Database stöder det tredelade namnformatet database_name. [schema_name].object_name när database_name är den aktuella databasen eller database_name är tempdb och object_name börjar med #.

ANVÄNDER alternativ

GEOMETRY_GRID
Specificerar det geometriska rutnätstesselleringsschema du använder. GEOMETRY_GRID kan endast specificeras på en kolumn av geometridatatypen . GEOMETRY_GRID möjliggör manuell justering av tessellationsschemat.

GEOMETRY_AUTO_GRID
Gäller för: SQL Server (SQL Server 2012 (11.x och senare) och Azure SQL Database

Kan endast specificeras på en kolumn av geometridatatypen. Detta är standard för denna datatyp och behöver inte specificeras.

GEOGRAPHY_GRID
Specificerar tesselleringsschemat för geografiskt rutnät. GEOGRAPHY_GRID kan endast anges på en kolumn av geografisk datatyp.

GEOGRAPHY_AUTO_GRID
Gäller för: SQL Server (SQL Server 2012 (11.x och senare) och Azure SQL Database

Kan endast specificeras på en kolumn av geografisk datatyp. Detta är standard för denna datatyp och behöver inte specificeras.

WITH-alternativ

BOUNDING_BOX
Specificerar en numerisk fyra-tuple som definierar de fyra koordinaterna för begränsningsboxen: x-min- och y-min-koordinaterna i nedre vänstra hörnet, samt x-max- och y-max-koordinaterna i det övre högra hörnet.

xmin
Specificerar x-koordinaten för det nedre vänstra hörnet av begränsningsboxen.

ymin
Specificerar y-koordinaten för det nedre vänstra hörnet av begränsningsrutan.

xmax
Specificerar x-koordinaten för det övre högra hörnet av avgränsningsboxen.

ymax
Specificerar y-koordinaten för det övre högra hörnet av avgränsningsrutan.

XMIN = xmin
Specificerar egenskapsnamn och värde för x-koordinaten för det nedre vänstra hörnet av begränsningsrutan.

YMIN =ymin
Specificerar egenskapsnamnet och värdet för y-koordinaten i det nedre vänstra hörnet av begränsningsrutan.

XMAX =xmax
Specificerar egenskapsnamn och värde för x-koordinaten för det övre högra hörnet av avgränsningsrutan.

YMAX =ymax
Specificerar egenskapsnamnet och värdet för y-koordinaten i övre högra hörnet av begränsningsboxen

Anmärkning

Begränsningsboxkoordinater gäller endast inom en USING GEOMETRY_GRID-klausul.

Xmax måste vara större än Xmin och Ymax måste vara större än Ymin. Du kan ange vilken giltig flyttalsrepresentation som helst, förutsatt att: xmax>xmin och ymax ymin>. Annars tas lämpliga fel upp.

Det finns inga standardvärden.

Begränsningsboxens egenskapsnamn är kasus-känsliga oavsett databassorteringen.

För att specificera egendomsnamn måste du ange var och en av dem en gång och endast en gång. Du kan specificera dem i valfri ordning. Till exempel är följande satser ekvivalenta:

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

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

NÄT
Definierar nätets täthet på varje nivå i ett tessellationsschema. När GEOMETRY_AUTO_GRID och GEOGRAPHY_AUTO_GRID är valda är detta alternativ inaktiverat.

För information om tessellering, se Översikt över rumsliga index.

GRIDS-parametrarna är följande:

LEVEL_1
Specificerar rutnätet på första nivån (överst).

LEVEL_2
Specificerar det andra nivåns rutnät.

LEVEL_3
Specificerar tredje nivåns rutnät.

LEVEL_4
Specificerar fjärde nivåns rutnät.

LOW
Specificerar den lägsta möjliga tätheten för nätet på en given nivå. LOW motsvarar 16 celler (ett 4x4-rutnät).

MEDIUM
Specificerar mellandensiteten för rutnätet på en given nivå. MEDIUM motsvarar 64 celler (ett 8x8 rutnät).

HIGH
Specificerar den högsta möjliga tätheten för rutnätet på en given nivå. HÖG motsvarar 256 celler (ett rutnät på 16x16).

Anmärkning

Att använda nivånamn gör att du kan specificera nivåerna i valfri ordning och utelämna nivåer. Om du använder namnet för någon nivå måste du använda namnet på vilken annan nivå som helst som du anger. Om du utelämnar en nivå är dess densitet som standard MEDEL.

Varning

Om en ogiltig täthet anges uppstår ett fel.

CELLS_PER_OBJECT =n
Specificerar antalet tessellationsceller per objekt som kan användas för ett enskilt rumsligt objekt i indexet genom tesselleringsprocessen. n kan vara vilket heltal som helst mellan 1 och 8192, inklusive. Om ett ogiltigt nummer passeras eller om numret är större än det maximala antalet celler för den specificerade tessellationen, uppstår ett fel.

CELLS_PER_OBJECT har följande standardvärden:

ANVÄNDNINGSALTERNATIV Standardceller per objekt
GEOMETRY_GRID 16
GEOMETRY_AUTO_GRID 8
GEOGRAPHY_GRID 16
GEOGRAPHY_AUTO_GRID 12

På den högsta nivån, om ett objekt täcker fler celler än vad n specificerar , använder indexeringen så många celler som behövs för att ge en fullständig topnivåtessellation. I sådana fall kan ett objekt få fler än det angivna antalet celler. I detta fall är det maximala antalet celler som genereras av det översta rutnätet, vilket beror på tätheten.

Det CELLS_PER_OBJECT värdet används av tesselleringsregeln för celler per objekt. För information om tesselleringsreglerna, se Översikt över rumsliga index.

PAD_INDEX = { ON | FEL }
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Anger indexutfyllnad. Standardvärdet är AV.

ON
Indikerar att den procentandel av ledigt utrymme som specificeras av fillfactor tillämpas på mellanliggande sidor i indexet.

OFF eller fillfactor specificeras inte
Indikerar att mellannivåsidorna är fyllda till nästan kapacitet, vilket lämnar tillräckligt med utrymme för minst en rad av den maximala storlek indexet kan ha, med hänsyn till uppsättningen av nycklar på mellanliggande sidor.

Alternativet PAD_INDEX är användbart endast när FILLFACTOR är specificerad, eftersom PAD_INDEX använder procentsatsen som anges av FILLFACTOR. Om procentsatsen som anges för FILLFACTOR inte är tillräckligt stor för att tillåta en rad, överskrider databasmotorn internt procentandelen för att tillåta minimum. Antalet rader på en mellanliggande indexsida är aldrig mindre än två, oavsett hur lågt fillfactorvärdet är.

FILLFACTOR = fillfaktor
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Anger en procentandel som anger hur full databasmotorn ska göra lövnivån för varje indexsida när index skapas eller återskapas. fillfactor måste vara ett heltalsvärde från 1 till 100. Standardvärdet är 0. Om fillfactor är 100 eller 0 skapar databasmotorn index med bladsidor fyllda till kapacitet.

Anmärkning

Fyllningsfaktorvärdena 0 och 100 är desamma i alla avseenden.

FILLFACTOR-inställningen gäller endast när indexet skapas eller byggs om. Databasmotorn behåller inte dynamiskt den angivna procentandelen tomrum i sidorna. Om du vill visa fyllningsfaktorinställningen använder du katalogvyn sys.indexes .

Viktigt!

Att skapa ett klustrat index med en FILLFACTOR mindre än 100 påverkar hur mycket lagringsutrymme datan upptar eftersom databasmotorn omfördelar datan när den skapar det klustrade indexet.

Mer information finns i Ange fyllningsfaktor för ett index.

SORT_IN_TEMPDB = { ON | FEL }
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Specificerar om man ska lagra tillfälliga sorteringsresultat i tempdb. Standardvärdet är AV.

ON
De mellanliggande sorteringsresultaten som används för att bygga indexet lagras i tempdb. Detta kan minska tiden det tar att skapa ett index om tempdb finns på en annan uppsättning diskar än användardatabasen. Detta ökar dock mängden diskutrymme som används under indexversionen.

AV
Mellanliggande sorteringsresultat lagras i samma databas som indexet.

Utöver det utrymme som krävs i användardatabasen för att skapa indexet måste tempdb ha ungefär lika mycket extra utrymme för att hålla de mellanliggande sorteringsresultaten. För mer information, se SORT_IN_TEMPDB Alternativ för index.

IGNORE_DUP_KEY =OFF
Har ingen effekt för rumsliga index eftersom indextypen aldrig är unik. Ställ inte in detta alternativ på PÅ, annars uppstår ett fel.

STATISTICS_NORECOMPUTE = { ON | AV}
Specificerar om fördelningsstatistik beräknas om. Standardvärdet är AV.

ON
Inaktuell statistik omberäknas inte automatiskt.

AV
Automatisk uppdatering av statistik är aktiverade.

För att återställa automatisk statistikuppdatering, ställ in STATISTICS_NORECOMPUTE på AV, eller kör UPDATE STATISTICS utan NORECOMPUTE-klausulen.

Viktigt!

Att inaktivera automatisk omberäkning av distributionsstatistik kan förhindra att frågeoptimeraren väljer optimala exekveringsplaner för frågor som involverar tabellen.

DROP_EXISTING = { ON | FEL }
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Specificerar att det namngivna, redan existerande rumsliga indexet tas bort och byggs om. Standardvärdet är AV.

ON
Det befintliga indexet tas bort och återskapas. Det angivna indexnamnet måste vara samma som ett befintligt index. Indexdefinitionen kan dock ändras. Du kan till exempel ange olika kolumner, sorteringsordning, partitionsschema eller indexalternativ.

AV
Ett fel visas om det angivna indexnamnet redan finns.

Indextypen kan inte ändras genom att använda DROP_EXISTING.

ONLINE =OFF
Specificerar att underliggande tabeller och tillhörande index inte är tillgängliga för frågor och dataändring under indexoperationen. I denna version av SQL Server stöds inte online-indexbyggen för rumsliga index. Om detta alternativ är inställt på ON för ett rumsligt index höjs ett fel. Antingen utelämnar du alternativet ONLINE eller ställer ONLINE till AVSTÄNGT.

En offline-indexoperation som skapar, bygger om eller släpper ett rumsligt index får ett Schema Modification (Sch-M) lås på tabellen. Detta förhindrar all användaråtkomst till den underliggande tabellen under hela åtgärden.

Anmärkning

Online-indexoperationer finns inte tillgängliga i varje utgåva av SQL Server. En lista över funktioner som stöds av versionerna av SQL Server finns i funktioner som stöds av versionerna av SQL Server 2016.

ALLOW_ROW_LOCKS = { ON | FEL }
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Anger om radlås tillåts. Standardinställningen är PÅ.

ON
Radlås tillåts vid åtkomst till indexet. Databasmotorn avgör när radlås används.

AV
Radlås används inte.

ALLOW_PAGE_LOCKS = { ON | FEL }
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Anger huruvida sidlås är tillåtna. Standardinställningen är PÅ.

ON
Sidlås tillåts vid åtkomst till indexet. Databasmotorn avgör när sidlås används.

AV
Sidlås används inte.

MAXDOP =max_degree_of_parallelism
Gäller för: SQL Server (SQL Server 2008 (10.0.x) och senare) och Azure SQL Database

Åsidosätter max degree of parallelism konfigurationsalternativet under hela indexåtgärden. Använd MAXDOP för att begränsa antalet processorer som används i en parallell plankörning. Maximalt är 64 processorer.

Viktigt!

Även om MAXDOP-alternativet är syntaktiskt stödd, använder CREATE SPATIAL INDEX för närvarande alltid endast en processor.

max_degree_of_parallelism kan vara:

1
Undertrycker parallell plangenerering.

>1
Begränsar det maximala antalet processorer som används i en parallell indexåtgärd till det angivna antalet eller färre baserat på den aktuella systemarbetsbelastningen.

0 (standard)
Använder det faktiska antalet processorer eller färre baserat på den aktuella systemarbetsbelastningen.

Mer information finns i Konfigurera parallella indexåtgärder.

Anmärkning

Parallella indexåtgärder är inte tillgängliga i varje utgåva av Microsoft SQL Server. En lista över funktioner som stöds av versionerna av SQL Server finns i funktioner som stöds av versionerna av SQL Server 2016.

DATA_COMPRESSION = {NONE | RAD | PAGE}
Gäller för: SQL Server (SQL Server 2012 (11.x och senare) och Azure SQL Database

Avgör vilken nivå av datakomprimering som används av indexet.

INGEN
Ingen komprimering används på data av indexet

RAD
Radkomprimering används på data av indexet

SIDA
Sidkomprimering används på data i indexet

Anmärkningar

Varje alternativ kan endast specificeras en gång per CREATE SPATIAL INDEX-sats. Om du anger en dubblett av ett alternativ genereras ett fel.

Du kan skapa upp till 249 rumsliga index på varje rumslig kolumn i en tabell. Att skapa mer än ett rumsligt index på en specifik rumslig kolumn kan vara användbart, till exempel för att indexera olika tessellationsparametrar i en enda kolumn.

Viktigt!

Det finns ett antal andra begränsningar för att skapa ett rumsligt index. För mer information, se Översikt över rumsliga index.

En indexbyggnation kan inte utnyttja tillgänglig processparallellism.

Metoder som stöds på rumsliga index

Under vissa förhållanden stöder rumsliga index ett antal mängdorienterade geometrimetoder. För mer information, se Översikt över rumsliga index.

Rumsliga index och partitionering

Som standard, om ett rumsligt index skapas på en partitionerad tabell, partitioneras indexet enligt tabellens partitionsschema. Detta säkerställer att indexdata och den relaterade raden lagras i samma partition.

I det här fallet, för att ändra partitionsschemat för bastabellen, måste du ta bort det rumsliga indexet innan du kan ompartitionera bastabellen. För att undvika denna begränsning kan du, när du skapar ett rumsligt index, ange alternativet "ON filegroup". För mer information, se "Spatial Indexes and Filegroups" senare i detta ämne.

Rumsliga index och filgrupper

Som standard är rumsliga index partitionerade till samma filgrupper som tabellen där indexet är specificerat. Detta kan åsidosättas genom att använda filgruppsspecifikationen:

[ PÅ { filegroup_name | "default" } ]
Om du anger en filgrupp för ett rumsligt index placeras indexet på den filgruppen, oavsett tabellens partitioneringsschema.

Katalogvyer för rumsliga index

Följande katalogvyer är specifika för rumsliga index:

sys.spatial_indexes
Representerar huvudindexinformationen för de rumsliga indexen.

sys.spatial_index_tessellations
Representerar informationen om tessellationsschemat och parametrarna för var och en av de rumsliga indexen.

Ytterligare kommentarer om att skapa index

För mer information om hur man skapar index, se avsnittet "Anmärkningar" i SKAPA INDEX (Transact-SQL).

Permissions

Användaren måste ha ALTER behörighet på tabellen eller vyn, eller vara medlem i sysadmin-rollen för fast server eller db_ddladmin samt db_owner fasta databasroller.

Examples

A. Skapa ett rumsligt index på en geometrikolumn

Följande exempel skapar en tabell med namnet SpatialTable som innehåller en geometritypkolumn , geometry_col. Exemplet skapar då ett rumsligt index, SIndx_SpatialTable_geometry_col1, på .geometry_col Exemplet använder standardtesselleringsschemat och specificerar begränsningsboxen.

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. Skapa ett rumsligt index på en geometrikolumn

Följande exempel skapar ett andra rumsligt index, SIndx_SpatialTable_geometry_col2, på i geometry_colSpatialTable tabellen. Exemplet specificerar GEOMETRY_GRID som tessellationsschemat. Exemplet specificerar också begränsningsboxen, olika densiteter på olika rutnätsnivåer och 64 celler per objekt. Exemplet sätter också indexutfyllnaden till 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. Skapa ett rumsligt index på en geometrikolumn

Följande exempel skapar ett tredje rumsligt index, SIndx_SpatialTable_geometry_col3, på i geometry_col tabellen SpatialTable . Exemplet använder standardtessellationsschemat. Exemplet specificerar begränsningsboxen och använder olika celltätheter på tredje och fjärde nivån, samtidigt som standardantalet celler per objekt används.

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. Att ändra ett alternativ som är specifikt för rumsliga index

Följande exempel återskapar det rumsliga indexet som skapades i föregående exempel, SIndx_SpatialTable_geography_col3, genom att specificera en ny LEVEL_3 täthet med 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. Skapa ett rumsligt index på en geografikolumn

Följande exempel skapar en tabell med namnet SpatialTable2 som innehåller en geografitypkolumn , geography_col. Exemplet skapar då ett rumsligt index, SIndx_SpatialTable_geography_col1, på .geography_col Exemplet använder standardparametrarna i GEOGRAPHY_AUTO_GRID tessellationsschemat.

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

Anmärkning

För geografiska rutnätsindex kan en begränsningsruta inte specificeras.

F. Skapa ett rumsligt index på en geografikolumn

Följande exempel skapar ett andra rumsligt index, SIndx_SpatialTable_geography_col2, på i geography_colSpatialTable2 tabellen. Exemplet specificerar GEOGRAPHY_GRID som tessellationsschemat. Exemplet specificerar också olika rutnätstätheter på olika nivåer och 64 celler per objekt. Exemplet sätter också indexutfyllnaden till 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. Skapa ett rumsligt index på en geografikolumn

Exemplet skapar sedan ett tredje rumsligt index, SIndx_SpatialTable_geography_col3, på i geography_colSpatialTable2 tabellen. Exemplet använder standardtesselleringsschemat, GEOGRAPHY_GRID, och standardvärdet CELLS_PER_OBJECT (16).

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

Se även

ALTERINDEX (Transact-SQL)
SKAPA INDEX (Transact-SQL)
SKAPA PARTITIONSFUNKTION (Transact-SQL)
SKAPA PARTITIONSSCHEMA (Transact-SQL)
SKAPA STATISTIK (Transact-SQL)
SKAPA TABELL (Transact-SQL)
Datatyper (Transact-SQL)
DBCC-SHOW_STATISTICS (Transact-SQL)
DROP-INDEX (Transact-SQL)
HÄNDELSEDATA (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.indexes (Transact-SQL)
sys.spatial_index_tessellations (Transact-SQL)
sys.spatial_indexes (Transact-SQL)
Översikt över spatiala index