Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Maakt een ruimtelijke index aan op een gespecificeerde tabel en kolom in SQL Server. Een index kan worden aangemaakt voordat er data in de tabel is. Indexen kunnen worden aangemaakt op tabellen of weergaven in een andere database door een gekwalificeerde databasenaam op te geven. Ruimtelijke indexen vereisen dat de tabel een geclusterde primaire sleutel heeft. Ruimtelijke indexen kunnen niet worden opgegeven voor geïndexeerde weergaven. Zie Overzicht van ruimtelijke indexen voor meer informatie over ruimtelijke indexen.
Transact-SQL syntaxis-conventies
Syntaxis
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
Is de naam van de index. Indexnamen moeten uniek zijn binnen een tabel, maar niet uniek binnen een database. Indexnamen moeten de regels van id's volgen.
ON-object <> ( spatial_column_name )
Specificeert het object (database, schema of tabel) waarop de index moet worden aangemaakt en de naam van de ruimtelijke kolom.
spatial_column_name specificeert de ruimtelijke kolom waarop de index is gebaseerd. Slechts één ruimtelijke kolom kan worden gespecificeerd in een enkele ruimtelijke indexdefinitie; echter, meerdere ruimtelijke indexen kunnen worden aangemaakt op een geometrie - of geografiekolom .
GEBRUIK
Geeft het tessellatieschema voor de ruimtelijke index aan. Deze parameter gebruikt de type-specifieke waarde, weergegeven in de volgende tabel:
| Gegevenstype kolom | Tessellatieschema |
|---|---|
| geometry | GEOMETRY_GRID |
| geometry | GEOMETRY_AUTO_GRID |
| geography | GEOGRAPHY_GRID |
| geography | GEOGRAPHY_AUTO_GRID |
Een ruimtelijke index kan alleen worden aangemaakt op een kolom van typegeometrie of geografie, anders wordt er een fout geactiveerd. Als een ongeldige parameter voor een bepaald type wordt doorgegeven, wordt er een fout gegenereerd.
Voor informatie over hoe SQL Server tessellatie implementeert, zie Overzicht van ruimtelijke indexen.
OP filegroup_name
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee maakt u de opgegeven index voor de opgegeven bestandsgroep. Als er geen locatie is opgegeven en de tabel niet is gepartitioneerd, gebruikt de index dezelfde bestandsgroep als de onderliggende tabel. De bestandsgroep moet al bestaan.
AAN "standaard"
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee maakt u de opgegeven index voor de standaardbestandsgroep.
De term default is in deze context geen trefwoord. Het is een identificatie voor de standaardbestandsgroep en moet worden afgebakend, zoals AAN "default" of ON [default]. Als "default" is opgegeven, moet de QUOTED_IDENTIFIER optie AAN staan voor de huidige sessie. Dit is de standaardinstelling. Zie set QUOTED_IDENTIFIER (Transact-SQL)voor meer informatie.
<object>::=
Is het volledig gekwalificeerde of niet-volledig gekwalificeerde object dat geïndexeerd moet worden?
database_name
Dat is de naam van de database.
schema_name
Is de naam van het schema waartoe de tabel behoort.
table_name
Is de naam van de tabel die geïndexeerd moet worden.
Azure SQL Database ondersteunt het driedelige naamformaat database_name. [schema_name].object_name wanneer de database_name de huidige database is of de database_name tempdb is en de object_name begint met #.
OPTIES gebruiken
GEOMETRY_GRID
Specificeert het geometrie-raster tessellatieschema dat je gebruikt. GEOMETRY_GRID kan alleen worden gespecificeerd op een kolom van het geometrische datatype. GEOMETRY_GRID maakt handmatige aanpassing van het tessellatieschema mogelijk.
GEOMETRY_AUTO_GRID
Van toepassing op: SQL Server (SQL Server 2012 (11.x) en later) en Azure SQL Database
Kan alleen worden gespecificeerd op een kolom van het geometrische datatype. Dit is de standaard voor dit datatype en hoeft niet gespecificeerd te worden.
GEOGRAPHY_GRID
Specificeert het tessellatieschema voor het geografische rooster. GEOGRAPHY_GRID kan alleen worden opgegeven op een kolom van het geografische datatype.
GEOGRAPHY_AUTO_GRID
Van toepassing op: SQL Server (SQL Server 2012 (11.x) en later) en Azure SQL Database
Kan alleen worden opgegeven op een kolom van het geografie-datatype. Dit is de standaard voor dit datatype en hoeft niet gespecificeerd te worden.
MET opties
BOUNDING_BOX
Specificeert een numerieke vier-tuple die de vier coördinaten van de begrenzende doos definieert: de x-min en y-min coördinaten van de linkerbenedenhoek, en de x-max en y-max coördinaten van de rechterbovenhoek.
xmin
Specificeert de x-coördinaat van de linkerbenedenhoek van de begrenzende doos.
Ymin
Geeft de y-coördinaat van de linkerbenedenhoek van de begrenzende doos aan.
xmax
Specificeert de x-coördinaat van de rechterbovenhoek van de begrenzende doos.
ymax
Geeft de y-coördinaat van de rechterbovenhoek van de begrenzende box aan.
XMIN = xmin
Specificeert de eigenschapsnaam en -waarde voor de x-coördinaat van de linkerbenedenhoek van het begrenzende vak.
YMIN =ymin
Specificeert de eigenschapsnaam en waarde voor de y-coördinaat van de linkerbenedenhoek van het begrenzende vak.
XMAX =xmax
Specificeert de eigenschapsnaam en -waarde voor de x-coördinaat van de rechterbovenhoek van de begrenzende doos.
YMAX =ymax
Specificeert de eigenschapsnaam en waarde voor de y-coördinaat van de rechterbovenhoek van de begrenzende doos
Opmerking
Begrenzingsboxcoördinaten zijn alleen van toepassing binnen een USING GEOMETRY_GRID-clausule.
Xmax moet groter zijn dan xmin en ymax moet groter zijn dan ymin. Je kunt elke geldige floatwaarde-representatie specificeren, ervan uitgaande dat: xmax>xmin en ymax ymin>zijn. Anders worden de juiste fouten gemeld.
Er zijn geen standaardwaarden.
De namen van de begrenzingsvakken-eigenschappen zijn hoofdlettergevoelig ongeacht de database-collatie.
Om eigendomsnamen op te geven, moet je elk van deze één keer en slechts één keer opgeven. Je kunt ze in willekeurige volgorde specificeren. Bijvoorbeeld, de volgende clausules zijn equivalent:
BOUNDING_BOX =( XMIN =xmin, YMIN =ymin, XMAX =xmax, YMAX =ymax )
BOUNDING_BOX =(XMIN =xmin, XMAX =xmax, YMIN =ymin, YMAX =ymax)
RASTERS
Definieert de dichtheid van het rooster op elk niveau van een tessellatieschema. Wanneer GEOMETRY_AUTO_GRID en GEOGRAPHY_AUTO_GRID zijn geselecteerd, is deze optie uitgeschakeld.
Voor informatie over tessellatie, zie Overzicht van Ruimtelijke Indexen.
De GRIDS-parameters zijn als volgt:
LEVEL_1
Specificeert het eerste niveau (bovenste) raster.
LEVEL_2
Specificeert het raster van het tweede niveau.
LEVEL_3
Specificeert het raster van het derde niveau.
LEVEL_4
Specificeert het raster van het vierde niveau.
Laag
Specificeert de laagst mogelijke dichtheid voor het raster op een gegeven niveau. LOW komt overeen met 16 cellen (een 4x4 raster).
GEMIDDELD
Specificeert de middendichtheid voor het raster op een gegeven niveau. MEDIUM komt overeen met 64 cellen (een 8x8 raster).
HIGH
Specificeert de hoogst mogelijke dichtheid voor het rooster op een gegeven niveau. HOOG komt overeen met 256 cellen (een raster van 16x16).
Opmerking
Met levelnamen kun je de levels in willekeurige volgorde specificeren en levels weglaten. Als je de naam voor een level gebruikt, moet je de naam van elk ander level gebruiken dat je aangeeft. Als je een level weglaat, staat de dichtheid standaard op MEDIUM.
Waarschuwing
Als een ongeldige dichtheid wordt gespecificeerd, wordt een fout geactiveerd.
CELLS_PER_OBJECT =n
Specificeert het aantal tessellatiecellen per object dat voor één ruimtelijk object in de index kan worden gebruikt door het tessellatieproces.
n kan elk geheel getal zijn tussen 1 en 8192, inclusief. Als een ongeldig getal wordt doorgegeven of het aantal groter is dan het maximale aantal cellen voor de gespecificeerde tessellatie, wordt een fout geactiveerd.
CELLS_PER_OBJECT heeft de volgende standaardwaarden:
| GEBRUIK-optie | Standaardcellen per object |
|---|---|
| GEOMETRY_GRID | 16 |
| GEOMETRY_AUTO_GRID | 8 |
| GEOGRAPHY_GRID | 16 |
| GEOGRAPHY_AUTO_GRID | 12 |
Op het hoogste niveau, als een object meer cellen bedekt dan door n gespecificeerd, gebruikt de indexering zoveel cellen als nodig is om een volledige topniveau-tessellatie te verkrijgen. In zulke gevallen kan een object meer dan het opgegeven aantal cellen ontvangen. In dit geval is het maximale aantal het aantal cellen dat door het topniveau raster wordt gegenereerd, wat afhangt van de dichtheid.
De CELLS_PER_OBJECT waarde wordt gebruikt door de cel-per-object tessellatieregel. Voor informatie over de tessellatieregels, zie Overzicht van Ruimtelijke Indexen.
PAD_INDEX = { ON | OFF }
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee geeft u indexopvulling. De standaardwaarde is UITGESCHAKELD.
ON
Geeft aan dat het percentage vrije ruimte dat door fillfactor wordt gespecificeerd, wordt toegepast op de pagina's op gemiddeld niveau van de index.
OFF of fillfactor is niet gespecificeerd
Geeft aan dat de pagina's op gemiddeld niveau bijna tot de maximale capaciteit zijn gevuld, waardoor er voldoende ruimte overblijft voor ten minste één rij van de maximale grootte die de index kan hebben, rekening houdend met de set sleutels op de tussenliggende pagina's.
De PAD_INDEX-optie is alleen nuttig wanneer FILLFACTOR is opgegeven, omdat PAD_INDEX het percentage gebruikt dat door FILLFACTOR is gespecificeerd. Als het percentage dat voor FILLFACTOR is gespecificeerd niet groot genoeg is om één rij toe te staan, overschrijft de Database Engine intern het percentage om het minimum toe te staan. Het aantal rijen op een tussenliggende indexpagina is nooit minder dan twee, ongeacht hoe laag de waarde van de fillfactor is.
FILLFACTOR = fillfactor
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee geeft u een percentage op dat aangeeft hoe vol de database-engine het bladniveau van elke indexpagina moet maken tijdens het maken of opnieuw opbouwen van de index. Fillfactor moet een geheel getal zijn van 1 tot 100. De standaardwaarde is 0. Als fillfactor 100 of 0 is, maakt de Database Engine indexen met bladpagina's tot op de volle capaciteit gevuld.
Opmerking
Vulfactorwaarden 0 en 100 zijn in alle opzichten hetzelfde.
De FILLFACTOR-instelling geldt alleen wanneer de index wordt aangemaakt of opnieuw opgebouwd. De Database Engine houdt het gespecificeerde percentage lege ruimte in de pagina's niet dynamisch bij. Als u de instelling voor de vulfactor wilt weergeven, gebruikt u de catalogusweergave sys.indexes .
Belangrijk
Het aanmaken van een geclusterde index met een FILLFACTOR kleiner dan 100 beïnvloedt de hoeveelheid opslagruimte die de data inneemt, omdat de Database Engine de data herverdeelt wanneer deze de geclusterde index aanmaakt.
Voor meer informatie, zie Specificeer de vulfactor voor een index.
SORT_IN_TEMPDB = { ON | OFF }
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Specificeert of tijdelijke sorteerresultaten in tempdb moeten worden opgeslagen. De standaardwaarde is UITGESCHAKELD.
ON
De tussentijdse sorteerresultaten die worden gebruikt om de index te bouwen, worden opgeslagen in tempdb. Dit kan de tijd die nodig is om een index te maken verkorten als tempdb op een andere set schijven staat dan de gebruikersdatabase. Dit verhoogt echter de hoeveelheid schijfruimte die wordt gebruikt tijdens de indexbuild.
OFF
De tussenliggende sorteerresultaten worden opgeslagen in dezelfde database als de index.
Naast de benodigde ruimte in de gebruikersdatabase om de index te maken, moet tempdb ongeveer evenveel extra ruimte hebben om de tussentijdse sorteerresultaten op te slaan. Voor meer informatie, zie SORT_IN_TEMPDB Optie Voor Indexen.
IGNORE_DUP_KEY =OFF
Heeft geen effect op ruimtelijke indexen omdat het indextype nooit uniek is. Zet deze optie niet op AAN, anders wordt er een foutmelding geactiveerd.
STATISTICS_NORECOMPUTE = { ON | UIT}
Specificeert of de verdelingsstatistieken opnieuw worden berekend. De standaardwaarde is UITGESCHAKELD.
ON
Verouderde statistieken worden niet automatisch opnieuw berekend.
OFF
Automatisch bijwerken van statistieken is ingeschakeld.
Om automatische statistiekupdates te herstellen, zet u de STATISTICS_NORECOMPUTE op UIT, of voer u UPDATE STATISTICS uit zonder de NORECOMPUTE-clausule.
Belangrijk
Het uitschakelen van automatische herberekening van distributiestatistieken kan voorkomen dat de query-optimizer optimale uitvoeringsplannen kiest voor queries die de tabel bevatten.
DROP_EXISTING = { ON | OFF }
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Geeft aan dat de benoemde, reeds bestaande ruimtelijke index wordt weggelaten en opnieuw opgebouwd. De standaardwaarde is UITGESCHAKELD.
ON
De bestaande index wordt verwijderd en opnieuw opgebouwd. De opgegeven indexnaam moet hetzelfde zijn als een bestaande index; De indexdefinitie kan echter worden gewijzigd. U kunt bijvoorbeeld verschillende kolommen, sorteervolgorde, partitieschema of indexopties opgeven.
OFF
Er wordt een fout weergegeven als de opgegeven indexnaam al bestaat.
Het indextype kan niet worden gewijzigd door DROP_EXISTING te gebruiken.
ONLINE =UIT
Specificeert dat onderliggende tabellen en bijbehorende indexen niet beschikbaar zijn voor zoekopdrachten en gegevenswijziging tijdens de indexoperatie. In deze versie van SQL Server worden online indexbouw niet ondersteund voor ruimtelijke indexen. Als deze optie op AAN staat voor een ruimtelijke index, wordt een fout geactiveerd. Of je laat de ONLINE optie weg of zet ONLINE op UIT.
Een offline indexoperatie die een ruimtelijke index aanmaakt, herbouwt of verwijdert, verkrijgt een Schema Modification (Sch-M) lock op de tabel. Hiermee voorkomt u dat alle gebruikers toegang hebben tot de onderliggende tabel voor de duur van de bewerking.
Opmerking
Online indexoperaties zijn niet beschikbaar in elke editie van SQL Server. Zie Functies die worden ondersteund door de edities van SQL Server 2016voor een lijst met functies die worden ondersteund door de edities van SQL Server 2016.
ALLOW_ROW_LOCKS = { ON | OFF }
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee geeft u op of rijvergrendelingen zijn toegestaan. De standaard staat AAN.
ON
Rijvergrendelingen zijn toegestaan bij toegang tot de index. De database-engine bepaalt wanneer rijvergrendelingen worden gebruikt.
OFF
Rijvergrendelingen worden niet gebruikt.
ALLOW_PAGE_LOCKS = { ON | OFF }
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee geeft u op of paginavergrendelingen zijn toegestaan. De standaard staat AAN.
ON
Paginavergrendelingen zijn toegestaan bij toegang tot de index. De database-engine bepaalt wanneer paginavergrendelingen worden gebruikt.
OFF
Paginavergrendelingen worden niet gebruikt.
MAXDOP =max_degree_of_parallelism
Van toepassing op: SQL Server (SQL Server 2008 (10.0.x) en later) en Azure SQL Database
Hiermee wordt de max degree of parallelism configuratieoptie voor de duur van de indexbewerking overschreven. Gebruik MAXDOP om het aantal processors dat wordt gebruikt in een parallelle uitvoering van een plan te beperken. Het maximum is 64 processoren.
Belangrijk
Hoewel de MAXDOP-optie syntactisch wordt ondersteund, gebruikt CREATE SPATIAL INDEX momenteel altijd slechts één processor.
max_degree_of_parallelism kan het volgende zijn:
1
Onderdrukt het genereren van parallelle plannen.
>1
Hiermee beperkt u het maximum aantal processors dat in een parallelle indexbewerking wordt gebruikt tot het opgegeven aantal of minder op basis van de huidige systeemworkload.
0 (standaard)
Gebruikt het werkelijke aantal processors of minder op basis van de huidige systeemworkload.
Zie Parallelle indexbewerkingen configurerenvoor meer informatie.
Opmerking
Parallelle indexbewerkingen zijn niet beschikbaar in elke editie van Microsoft SQL Server. Zie Functies die worden ondersteund door de edities van SQL Server 2016voor een lijst met functies die worden ondersteund door de edities van SQL Server 2016.
DATA_COMPRESSION = {NONE | RIJ | PAGE}
Van toepassing op: SQL Server (SQL Server 2012 (11.x) en later) en Azure SQL Database
Bepaalt het gegevenscompressieniveau dat door de index wordt gebruikt.
GEEN
Er wordt geen compressie toegepast op gegevens door de index
ROEIEN
Rijcompressie gebruikt door de index op gegevens
PAGE
Paginacompressie toegepast op gegevens door middel van de index
Opmerkingen
Elke optie kan slechts één keer per CREATE SPATIAL INDEX-instructie worden gespecificeerd. Als u een duplicaat van een optie opgeeft, wordt er een fout gegenereerd.
Je kunt tot 249 ruimtelijke indexen maken op elke ruimtelijke kolom in een tabel. Het creëren van meer dan één ruimtelijke index op een specifieke ruimtelijke kolom kan nuttig zijn, bijvoorbeeld om verschillende tessellatieparameters in één kolom te indexeren.
Belangrijk
Er zijn een aantal andere beperkingen bij het creëren van een ruimtelijke index. Voor meer informatie, zie Overzicht van Ruimtelijke Indexen.
Een indexbuild kan geen gebruik maken van beschikbare procesparallelisme.
Methoden ondersteund op ruimtelijke indexen
Onder bepaalde omstandigheden ondersteunen ruimtelijke indexen een aantal verzameling-georiënteerde meetkundige methoden. Voor meer informatie, zie Overzicht van Ruimtelijke Indexen.
Ruimtelijke indexen en partitionering
Standaard wordt een ruimtelijke index aangemaakt op een gepartitioneerde tabel, de index gepartitioneerd volgens het partitieschema van de tabel. Dit zorgt ervoor dat indexgegevens en de bijbehorende rij in dezelfde partitie worden opgeslagen.
In dit geval, om het partitieschema van de basistabel te wijzigen, moet je eerst de ruimtelijke index verwijderen voordat je de basistabel opnieuw kunt opdelen. Om deze beperking te omzeilen, kun je bij het aanmaken van een ruimtelijke index de optie "ON filegroup" specificeren. Voor meer informatie, zie "Ruimtelijke indexen en bestandsgroepen," later in dit onderwerp.
Ruimtelijke indexen en bestandsgroepen
Standaard zijn ruimtelijke indexen gepartitioneerd in dezelfde bestandsgroepen als de tabel waarop de index is gespecificeerd. Dit kan worden overschreven door gebruik te maken van de filegroup-specificatie:
[ AAN { filegroup_name | "default" } ]
Als je een bestandsgroep specificeert voor een ruimtelijke index, wordt de index op die bestandsgroep geplaatst, ongeacht het partitioneringsschema van de tabel.
Catalogusweergaven voor ruimtelijke indexen
De volgende catalogusweergaven zijn specifiek voor ruimtelijke indexen:
sys.spatial_indexes
Geeft de hoofdindexinformatie van de ruimtelijke indexen weer.
sys.spatial_index_tessellations
Geeft de informatie weer over het tessellatieschema en parameters van elk van de ruimtelijke indexen.
Aanvullende opmerkingen over het maken van indexen
Voor meer informatie over het aanmaken van indexen, zie de sectie "Opmerkingen" in INDEX AANMAKEN (Transact-SQL).
Permissions
De gebruiker moet toestemming hebben ALTER voor de tabel of weergave, of lid zijn van de sysadmin vaste serverrol of de db_ddladmin vaste db_owner databaserollen.
Voorbeelden
Eén. Het creëren van een ruimtelijke index op een geometriekolom
Het volgende voorbeeld maakt een tabel aan die SpatialTable een kolom van het geometrietype bevat, geometry_col. Het voorbeeld creëert dan een ruimtelijke index, SIndx_SpatialTable_geometry_col1, op de geometry_col. Het voorbeeld gebruikt het standaard tessellatieschema en specificeert de begrenzingsbox.
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. Het creëren van een ruimtelijke index op een geometriekolom
Het volgende voorbeeld creëert een tweede ruimtelijke index, SIndx_SpatialTable_geometry_col2, op de geometry_col in de SpatialTable tabel. Het voorbeeld specificeert GEOMETRY_GRID als het tessellatieschema. Het voorbeeld specificeert ook de begrenzingsdoos, verschillende dichtheden op verschillende rasterniveaus en 64 cellen per object. Het voorbeeld zet ook de indexopvulling op 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. Het creëren van een ruimtelijke index op een geometriekolom
Het volgende voorbeeld creëert een derde ruimtelijke index, SIndx_SpatialTable_geometry_col3, op de geometry_col in de SpatialTable tabel. Het voorbeeld gebruikt het standaard tessellatieschema. Het voorbeeld specificeert de begrenzingsbox en gebruikt verschillende celdichtheden op het derde en vierde niveau, terwijl het standaardaantal cellen per object wordt gebruikt.
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. Een optie wijzigen die specifiek is voor ruimtelijke indexen
Het volgende voorbeeld reconstrueert de ruimtelijke index die in het voorgaande voorbeeld is gecreëerd, SIndx_SpatialTable_geography_col3, door een nieuwe LEVEL_3 dichtheid te specificeren met 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. Het creëren van een ruimtelijke index op een geografiekolom
Het volgende voorbeeld maakt een tabel aan met de naam SpatialTable2 die een geografietypekolom bevat, geography_col. Het voorbeeld creëert dan een ruimtelijke index, SIndx_SpatialTable_geography_col1, op de geography_col. Het voorbeeld gebruikt de standaardparameters van het GEOGRAPHY_AUTO_GRID tessellatieschema.
CREATE TABLE SpatialTable2(id int primary key, object GEOGRAPHY);
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col1
ON SpatialTable2(object);
Opmerking
Voor geografische rasterindexen kan een begrenzingsbox niet worden gespecificeerd.
F. Het creëren van een ruimtelijke index op een geografiekolom
Het volgende voorbeeld creëert een tweede ruimtelijke index, SIndx_SpatialTable_geography_col2, op de geography_col in de SpatialTable2 tabel. Het voorbeeld specificeert GEOGRAPHY_GRID als het tessellatieschema. Het voorbeeld specificeert ook verschillende rasterdichtheden op verschillende niveaus en 64 cellen per object. Het voorbeeld zet ook de indexopvulling op 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. Het creëren van een ruimtelijke index op een geografiekolom
Het voorbeeld maakt vervolgens een derde ruimtelijke index, SIndx_SpatialTable_geography_col3, op in geography_col de SpatialTable2 tabel. Het voorbeeld gebruikt het standaard tessellatieschema, GEOGRAPHY_GRID, en de standaard CELLS_PER_OBJECT waarde (16).
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
ON SpatialTable2(object)
WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );
Zie ook
ALTER INDEX (Transact-SQL)
MAAK INDEX AAN (Transact-SQL)
`CREATE PARTITION FUNCTION (Transact-SQL)`
MAKEN VAN PARTITIESCHEMA (Transact-SQL)
STATISTIEKEN maken (Transact-SQL)
MAAK TABEL AAN (Transact-SQL)
gegevenstypen (Transact-SQL)
DBCC-SHOW_STATISTICS (Transact-SQL)
DROPINDEX (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)
Overzicht van ruimtelijke indexen