Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Létrehoz egy térbeli indexet egy meghatározott táblázaton és oszlopon az SQL Serverben. Indexet lehet létrehozni, mielőtt az adatok lennének a táblázatban. Indexeket létrehozhatnak táblákon vagy más adatbázis nézetein egy minősített adatbázis név megadásával. A térbeli indexek megkövetelik, hogy a táblázatnak klaszterezett elsődleges kulcsa legyen meg. Térbeli indexek nem adhatók meg indexelt nézetekben. A térbeli indexekről további információt a Térbeli indexek áttekintése című témakörben talál.
Transact-SQL szintaxis konvenciók
Szemantika
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
Ez az index neve. Az indexneveknek egyedinek kell lenniük egy táblázaton belül, de nem kell egyedinek lenniük az adatbázison belül. Az indexneveknek az azonosítók szabályait kell követnie.
OBJEKTUMON <> (spatial_column_name) )
Megadja azt az objektumot (adatbázis, séma vagy táblázat), amelyen az indexet kell létrehozni, valamint a térbeli oszlop nevét.
spatial_column_name megadja azt a térbeli oszlopot, amelyen az index alapul. Egyetlen térbeli index definícióban csak egy térbeli oszlop lehet megadni; azonban több térbeli index is létrehozható egy geometriai vagy földrajzi oszlopon.
HASZNÁL
Jelzi a térbeli index mozcellációs sémáját. Ez a paraméter a típus-specifikus értéket használja, amelyet az alábbi táblázat mutat:
| Oszlop adattípusa | Tessellációs séma |
|---|---|
| geometry | GEOMETRY_GRID |
| geometry | GEOMETRY_AUTO_GRID |
| geography | GEOGRAPHY_GRID |
| geography | GEOGRAPHY_AUTO_GRID |
Térbeli index csak egy típus-geometria vagy földrajz oszlopon hozható létre, különben hiba keletkezik. Ha egy adott típusra érvényes paramétert adnak át, hiba keletkezik.
Az SQL Server tessellációjának megvalósításáról információért lásd: Térbeli indexek áttekintése.
A filegroup_name
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Létrehozza a megadott indexet a megadott fájlcsoporton. Ha nincs megadva hely, és a tábla nincs partíciózva, az index ugyanazt a fájlcsoportot használja, mint az alapul szolgáló tábla. A fájlcsoportnak már léteznie kell.
ON "default" (alapértelmezett)
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Létrehozza a megadott indexet az alapértelmezett fájlcsoporton.
Ebben a kontextusban az alapértelmezett kifejezés nem kulcsszó. Ez az alapértelmezett fájlcsoport azonosítója, és le kell osztani, például ON "default" vagy ON [default]. Ha a "default" opció meg van jelölve, akkor a QUOTED_IDENTIFIER opciónak BE kell lennie a jelenlegi ülésen. Ez az alapértelmezett beállítás. További információ: SET QUOTED_IDENTIFIER (Transact-SQL).
<objektum>::=
Indexelni kell a teljesen minősített vagy nem teljesen minősített objektumot.
database_name
Ez az adatbázis neve.
schema_name
Ez a táblázat szerinti séma neve.
table_name
Az indexelendő táblázat neve.
Az Azure SQL Database támogatja a háromrészes névformátumot database_name. [schema_name].object_name amikor a database_name az aktuális adatbázis, vagy a database_name tempdb, és a object_name #-val kezdődik.
OPCIÓK HASZNÁLATA
GEOMETRY_GRID
Megadja az általad használt geometriai rács tessellációs sémát. GEOMETRY_GRID csak a geometriai adattípus oszlopán lehet megadni. GEOMETRY_GRID lehetővé teszi a mozcellációs séma kézi beállítását.
GEOMETRY_AUTO_GRID
Alkalmazható: SQL Server (SQL Server 2012 (11.x) és újabbabb) és Azure SQL Database
Csak a geometriai adattípus oszlopán lehet megadni. Ez az alapértelmezett az adattípus számára, és nem szükséges megadni.
GEOGRAPHY_GRID
Megadja a földrajzi rács tessellációs sémát. GEOGRAPHY_GRID csak a földrajzi adattípus oszlopán lehet megadni.
GEOGRAPHY_AUTO_GRID
Alkalmazható: SQL Server (SQL Server 2012 (11.x) és újabbabb) és Azure SQL Database
Csak a földrajzi adattípus oszlopán lehet megadni. Ez az alapértelmezett az adattípus számára, és nem szükséges megadni.
A WITH beállításai
BOUNDING_BOX
Megad egy numerikus négy tupládát, amely meghatározza a korlátzó doboz négy koordinátáját: a bal alsó sarok x-min és y-min koordinátáit, valamint a jobb felső sarok x-max és y-max koordinátáit.
xmin
Megadja a korlátzó doboz bal alsó sarkának x-koordinátáját.
Ymin
Megadja a korlátzó doboz bal alsó sarkának y-koordinátáját.
xmax
Megadja a korlátzó doboz jobb felső sarkának x-koordinátáját.
ymax
Megadja a korlátzó doboz jobb felső sarkának y-koordinátáját.
XMIN = xmin
Megadja a korlátzó doboz bal alsó sarkának x-koordinátájának tulajdonságnevét és értékét.
YMIN =ymin
Megadja a korlátzó doboz bal alsó sarkának y-koordinátájának tulajdonságnevét és értékét.
XMAX =xmax
Megadja a korlátzó doboz jobb felső sarkának x-koordinátának tulajdonságnevét és értékét.
YMAX = ymax
Megadja a korlátzó doboz jobb felső sarkának y-koordinátájának tulajdonságnevét és értékét
Megjegyzés:
A bounding-box koordináták csak egy USING GEOMETRY_GRID záradékon belül érvényesek.
Az xmaxnak nagyobbnak kell lennie, mint az xmin , és a ymaxnak nagyobbnak kell lennie, mint a YMIN. Bármilyen érvényes lebegő érték reprezentációt megadhatsz, feltéve, hogy: xmax>xmin és ymax>ymin. Ellenkező esetben a megfelelő hibák merülnek fel.
Nincsenek alapértelmezett értékek.
A bounding-box tulajdonságnevek nagybetűvel érzékenyek, függetlenül az adatbázis-összeállítástól.
A tulajdonságnevek megadásához mindegyiket egyszer és csak egyszer kell megadnod. Bármilyen sorrendben megadhatod őket. Például a következő klaulaudák ekvivalensek:
BOUNDING_BOX =(XMIN =xmin, YMIN = ymin, XMAX =xmax, YMAX =ymax )
BOUNDING_BOX =(XMIN =xmin, XMAX =xmax, YMIN =ymin, YMAX =ymax)
RÁCSOK
Meghatározza a rács sűrűségét a mozcellációs séma minden szintjén. Ha GEOMETRY_AUTO_GRID és GEOGRAPHY_AUTO_GRID vannak kiválasztva, ez az opció letiltott.
A mozcellációról információért lásd: Térbeli indexek áttekintése.
A GRIDS paraméterek a következők:
LEVEL_1
Megadja az első szintű (felső) rácsot.
LEVEL_2
Megadja a második szintű rácsot.
LEVEL_3
Megadja a harmadik szintű rácsot.
LEVEL_4
Megadja a negyedik szintű rácsot.
LOW
Megadja a rács legalacsonyabb lehetséges sűrűségét egy adott szinten. Az LOW 16 cellát jelent (egy 4x4-es rács).
KÖZEPES
Megadja a rács közepes sűrűségét egy adott szinten. A MEDIUM 64 cellát jelent (egy 8x8-as rács).
HIGH
Megadja a rács legmagasabb lehetséges sűrűségét egy adott szinten. A HIGH 256 cellát jelent (16x16-os rács).
Megjegyzés:
A szintnevek használatával bármilyen sorrendben megadhatod a szinteket, és kihagyhatod a szinteket. Ha bármelyik szintnél ezt a nevet használod, akkor a megadott más szint nevét kell használnod. Ha kihagysz egy szintet, a sűrűsége alapértelmezett KÖZEPES lesz.
Figyelmeztetés
Ha érvénytelen sűrűséget jelölünk, hiba keletkezik.
CELLS_PER_OBJECT =n
Megadja a mozcellás cellák számát objektumonként, amelyeket egyetlen térbeli objektum számára használhat az indexben a mozcellázási folyamat során.
n lehet bármely egész szám 1 és 8192 között, beleértve a számot. Ha egy érvénytelen számot passzolnak, vagy a szám nagyobb, mint a megadott tesselláció maximális cellája, hiba keletkezik.
CELLS_PER_OBJECT az alábbi alapértelmezett értékekkel rendelkezik:
| HASZNÁLATI opció | Alapértelmezett cellák objektumonként |
|---|---|
| GEOMETRY_GRID | 16 |
| GEOMETRY_AUTO_GRID | 8 |
| GEOGRAPHY_GRID | 16 |
| GEOGRAPHY_AUTO_GRID | 12 |
A legfelső szinten, ha egy objektum több cellát fed le, mint az n által megjelölt, az indexelés annyi cellát használ, amennyi szükséges a teljes felső szintű tesselláció biztosításához. Ilyen esetekben egy objektum több cellát kaphat, mint a megadott számú cella. Ebben az esetben a maximális szám a felső szintű rács által generált cellák száma, ami a sűrűségtől függ.
A CELLS_PER_OBJECT értéket a cella-per object tessellációs szabály használja. A mozcellációs szabályokról további információért lásd: Térbeli indexek áttekintése.
PAD_INDEX = { ON | LE }
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Az indexek kitöltését adja meg. Az alapértelmezett érték ki van kapcsolva.
ON
Azt jelzi, hogy a fillfactor által meghatározott szabad hely százaléka az index középszintű oldalaira vonatkozik.
A OFF vagy fillfactor nincs megadva.
Azt jelzi, hogy a középszintű oldalak majdnem tele vannak töltve, így elegendő hely marad legalább egy sorhoz, amely az index maximális méretével rendelkezik, figyelembe véve a köztes oldalak kulcskészletét.
A PAD_INDEX opció csak akkor hasznos, ha a FILLFACTOR meg van jelölve, mert PAD_INDEX a FILLFACTOR által megadott százalékot használja. Ha a FILLFACTOR-ra megadott százalék nem elég nagy egy sor eléréséhez, az Database Engine belülről felülírja a minimumot. A köztes indexoldalon a sor száma soha nem kevesebb, mint kettő, függetlenül attól, mennyire alacsony a fillitálló.
FILLFACTOR = FILLFACTOR
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Százalékos értéket ad meg, amely azt jelzi, hogy az adatbázismotornak mennyire kell az egyes indexlapok levélszintjének szintjét létrehoznia az index létrehozása vagy újraépítése során. Fillfactor egy egész értéknek kell lennie 1-től 100-ig. Az alapértelmezett érték 0. Ha a töltőfaktor 100 vagy 0, az Adatbázis Engine indexeket hoz létre, amelyekben a levéloldalak teljes kapacitásra vannak töltöttek.
Megjegyzés:
A 0 és a 100 kitöltési tényező értéke minden tekintetben megegyezik.
A FILLFACTOR beállítás csak akkor érvényes, ha az indexet létrehozzák vagy újraépítik. Az adatbázis motor nem tartja meg dinamikusan a megadott üres területet az oldalakon. A kitöltési tényező beállításának megtekintéséhez használja a sys.indexes katalógusnézetet.
Fontos
Egy klaszterelt index létrehozása, amelynek FILLFACTOR értéke kevesebb mint 100, befolyásolja, hogy mennyi tárolóhelyet foglal el az adatok, mert az adatbázis motor újraosztja az adatokat, amikor létrehozza a klaszterelt indexet.
További információ: Kitöltési tényező megadása index.
SORT_IN_TEMPDB = { ON | LE }
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Megadja, hogy ideiglenes rendezés esetén tárolja-e az eredményeket a tempdb-ben. Az alapértelmezett érték ki van kapcsolva.
ON
Az index felépítéséhez használt köztes rendezési eredményeket tempdb-ben tárolják. Ez csökkentheti az index létrehozásának idejét, ha a tempdb más lemezkészleten van, mint a felhasználói adatbázis. Ez azonban növeli az index buildelése során használt lemezterületet.
KI
A köztes rendezési eredmények ugyanabban az adatbázisban vannak tárolva, mint az index.
Az index létrehozásához szükséges felhasználói adatbázisban szükséges helyen túl a tempdb-nek nagyjából ugyanannyi plusz helynek kell lennie a köztes rendezési eredmények tárolására. További információért lásd SORT_IN_TEMPDB Indexek opcióját.
IGNORE_DUP_KEY =KI
Nincs hatása térbeli indexekre, mert az index típus soha nem egyedi. Ne állítsd be ezt az opciót ON-ra, különben hiba keletkezik.
STATISTICS_NORECOMPUTE = { ON | OFF}
Meghatározza, hogy újraszámolják-e az eloszlási statisztikákat. Az alapértelmezett érték ki van kapcsolva.
ON
A elavult statisztikák nem lesznek automatikusan újrafordítve.
KI
Az automatikus statisztikák frissítése engedélyezve van.
Az automatikus statisztikai frissítés visszaállításához állítsa a STATISTICS_NORECOMPUTE OFF állapotba, vagy hajtsa végre a UPDATE STATISTICS műveletet a NORECOMPUTE záradék nélkül.
Fontos
Az eloszlási statisztikák automatikus újraszámításának letiltása megakadályozhatja, hogy a lekérdezésoptimalizáló optimális végrehajtási terveket válasszon a táblával kapcsolatos lekérdezésekhez.
DROP_EXISTING = { ON | LE }
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Megadja, hogy a megnevezett, előre létező térbeli indexet eltávolítsák és újraépítik. Az alapértelmezett érték ki van kapcsolva.
ON
A meglévő indexet törlik és újjáépítik. A megadott indexnévnek meg kell egyeznie a jelenleg meglévő index nevével; azonban az indexdefiníció módosítható. Megadhat például különböző oszlopokat, rendezési sorrendet, partíciós sémát vagy indexbeállításokat.
KI
Hiba jelenik meg, ha a megadott indexnév már létezik.
Az index típus nem változtatható meg DROP_EXISTING használatával.
ONLINE = KI
Megadja, hogy az alapul szolgáló táblák és a hozzájuk tartozó indexek nem elérhetők lekérdezésekhez és adatmódosításokhoz az index művelet során. Ebben az SQL Server verzióban az online indexépítések nem támogatottak térbeli indexekhez. Ha ezt az opciót ON-ra állítják egy térbeli indexhez, hiba keletkezik. Vagy hagyd ki az ONLINE opciót, vagy állítsd az ONLINE-t KIKAPCSOLVA.
Egy offline index művelet, amely térbeli indexet hoz létre, újraépít vagy eltávolít, sémamódosítási (Sch-M) zárolást szerez a táblázaton. Ez megakadályozza, hogy a művelet időtartama alatt minden felhasználó hozzáférjen a mögöttes táblához.
Megjegyzés:
Az online index műveletek nem elérhetők minden SQL Server kiadásban. Az SQL Server kiadásai által támogatott funkciók listáját az SQL Server 2016-kiadásai által támogatott funkcióktalálja.
ALLOW_ROW_LOCKS = { ON | LE }
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Megadja, hogy engedélyezettek-e a sorzárolások. Az alapértelmezett beállítás ON.
ON
Az index elérésekor sorzárolások engedélyezettek. Az adatbázismotor határozza meg a sorzárolások használatát.
KI
A sorzárak nem használhatók.
ALLOW_PAGE_LOCKS = { ON | LE }
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Megadja, hogy engedélyezettek-e az oldalzárolások. Az alapértelmezett beállítás ON.
ON
Az index elérésekor az oldalzárolások engedélyezettek. Az adatbázismotor határozza meg az oldalzárolások használatát.
KI
Az oldalzárak nem használhatók.
MAXDOP =max_degree_of_parallelism
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb) és Azure SQL Database
Felülbírálja az max degree of parallelism indexművelet időtartamára vonatkozó konfigurációs beállítást. A MAXDOP használatával korlátozhatja a párhuzamos terv végrehajtásához használt processzorok számát. A maximális érték 64 processzor.
Fontos
Bár a MAXDOP opció szintaktikailag támogatott, a CREATE SPATIAL INDEX jelenleg mindig csak egyetlen processzort használ.
max_degree_of_parallelism lehet:
1
Letiltja a párhuzamos tervgenerálást.
>1
A párhuzamos indexműveletekben használt processzorok maximális számát a megadott számra vagy annál kevesebbre korlátozza az aktuális rendszerterhelés alapján.
0 (alapértelmezett)
A processzorok tényleges számát használja, vagy kevesebbet az aktuális rendszerterhelés alapján.
További információ: Párhuzamos indexelési műveletek konfigurálása.
Megjegyzés:
A párhuzamos indexműveletek nem érhetők el a Microsoft SQL Server minden kiadásában. Az SQL Server kiadásai által támogatott funkciók listáját az SQL Server 2016-kiadásai által támogatott funkcióktalálja.
DATA_COMPRESSION = {NINCS | SOR | OLDAL}
Alkalmazható: SQL Server (SQL Server 2012 (11.x) és újabbabb) és Azure SQL Database
Meghatározza az index által használt adattömörítés szintjét.
Egyik sem
Az index nem használ tömörítést az adatokhoz
SOR
Az index által az adatokon használt sortömörítés
OLDAL
Az index által az adatokon használt laptömörítés
Megjegyzések
Minden opció csak egyszer lehet megadni egy CREATE SPATIAL INDEX utasítás szerint. Ha egy beállítás duplikátumát adja meg, az hibát jelez.
Akár 249 térbeli indexet is létrehozhatsz minden térbeli oszlopon egy táblázatban. Hasznos lehet egy adott térbeli oszlopon több térbeli index létrehozása, például különböző mozsellációs paraméterek indexeléséhez egyetlen oszlopban.
Fontos
Számos más korlátozás is vonatkozik a térbeli index létrehozására. További információért lásd: Térbeli indexek áttekintése.
Egy index build nem használhatja a rendelkezésre álló folyamatpárhuzamosságot.
Térbeli indexeken támogatott módszerek
Bizonyos körülmények között a térbeli indexek számos halmaz-orientált geometriai módszert támogatnak. További információért lásd: Térbeli indexek áttekintése.
Térbeli indexek és partíció
Alapértelmezettben, ha térbeli indexet hoznak létre egy partíciós táblázaton, az index a tábla partíciós sémája szerint van felosztva. Ez biztosítja, hogy az indexadatok és a kapcsolódó sor ugyanabban a partícióban legyenek tárolva.
Ebben az esetben az alaptábla partíciós sémájának megváltoztatásához el kell hagyni a térbeli indexet, mielőtt újra feloszthatnánk az alaptáblát. Ennek a korlátozásnak a elkerülése érdekében, amikor térbeli indexet hozol létre, megadhatod az "ON fájlcsoport" opciót. További információért lásd a "Térbeli indexek és fájlcsoportok" (Térbeli indexek és fájlcsoportok) (Térbeli indexek és fájlcsoportok) része a téma későbbi részében.
Térbeli indexek és fájlcsoportok
Alapértelmezés szerint a térbeli indexek ugyanarra a fájlcsoportra vannak osztva, mint az a táblázat, amelyen az index van megadva. Ezt felülírható a fájlcsoport specifikációjával:
[ ON { filegroup_name | "alapértelmezett" } ]
Ha egy térbeli indexhez fájlcsoportot állítasz be, az index az adott fájlcsoporton kerül, függetlenül a tábla partíciós sémájától.
Katalógusnézetek térbeli indexekhez
Az alábbi katalógusnézetek kifejezetten térbeli indexekre vonatkoznak:
sys.spatial_indexes
A térbeli indexek fő indexinformációját képviseli.
sys.spatial_index_tessellations
A térbeli index testsselizációs sémájáról és paramétereiről ismert információt képviseli.
További megjegyzések az indexek létrehozásáról
További információért az indexek létrehozásáról lásd a CREATE INDEX (Transact-SQL) "Megjegyzések" szakaszát.
Permissions
A felhasználónak engedélyt kell szereznie ALTER a táblán vagy nézeten, vagy tagja kell lennie a rendszergazdálkodó fix szerver szerepének, vagy a db_ddladmin fix adatbázis db_owner szerepeknek.
Példák
A. Térbeli index létrehozása egy geometriai oszlopon
A következő példa egy táblázatot hoz létre, amely SpatialTablegeometria típusú oszlopot tartalmaz, geometry_col. A példa ezután egy térbeli indexet hoz létre SIndx_SpatialTable_geometry_col1, a .geometry_col A példa az alapértelmezett tessellációs sémát használja, és megadja a határzó dobozt.
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. Térbeli index létrehozása egy geometriai oszlopon
A következő példa egy második térbeli indexet hoz SIndx_SpatialTable_geometry_col2létre a geometry_colSpatialTable táblázatban. A példa a tessellációs séma határozza GEOMETRY_GRID meg. A példa megadja a korlátzó dobozt, különböző sűrűségeket különböző rácsszinteken, valamint 64 cellát objektumonként. A példa az indexpadolást is beállítja .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. Térbeli index létrehozása egy geometriai oszlopon
A következő példa egy harmadik térbeli indexet SIndx_SpatialTable_geometry_col3hoz létre , a geometry_colSpatialTable táblázatban. A példa az alapértelmezett tessellációs sémát használja. A példa megadja a korlátzó dobozt, és a harmadik és negyedik szinten különböző cellasűrűségeket használ, miközben az objektumonként alapértelmezett cellák számát használja.
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. Egy térbeli indexekre specifikus opció megváltoztatása
A következő példa újraépíti az előző példában létrehozott térbeli indexet, SIndx_SpatialTable_geography_col3, egy új LEVEL_3 sűrűség megadásával 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. Térbeli index létrehozása egy földrajzi oszlopon
A következő példa egy táblázatot hoz létre, amely SpatialTable2földrajz típusú oszlopot tartalmaz, geography_col. A példa ezután egy térbeli indexet hoz létre SIndx_SpatialTable_geography_col1, a .geography_col A példa a GEOGRAPHY_AUTO_GRID tessellációs séma alapértelmezett paraméterértékeit használja.
CREATE TABLE SpatialTable2(id int primary key, object GEOGRAPHY);
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col1
ON SpatialTable2(object);
Megjegyzés:
Földrajzi rácsindexekhez nem lehet meghatározni egy határzó dobozt.
F. Térbeli index létrehozása egy földrajzi oszlopon
A következő példa egy második térbeli indexet hoz SIndx_SpatialTable_geography_col2létre a geography_colSpatialTable2 táblázatban. A példa a tessellációs séma határozza GEOGRAPHY_GRID meg. A példa különböző rácssűrűségeket is megad különböző szinteken, és 64 cellát objektumonként. A példa az indexpadolást is beállítja .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. Térbeli index létrehozása egy földrajzi oszlopon
A példa ezután létrehoz egy harmadik térbeli indexet, SIndx_SpatialTable_geography_col3, a geography_colSpatialTable2 táblázatban. A példa az alapértelmezett tessellációs sémát, GEOGRAPHY_GRID-t, és az alapértelmezett CELLS_PER_OBJECT értéket (16) használja.
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
ON SpatialTable2(object)
WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );
Lásd még
ALTER INDEX (Transact-SQL)
INDEX KÉSZÍTÉSE (Transact-SQL)
CREATE PARTITION FÜGGVÉNY (Transact-SQL)
CREATE PARTITION SCHEME (Transact-SQL)
Statok létrehozása (Transact-SQL)
CREATE TABLE (Transact-SQL)
adattípusok (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
DROP INDEX (Transact-SQL)
ESEMÉNYADATOK (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.indexes (Transact-SQL)
sys.spatial_index_tessellations (Transact-SQL)
sys.spatial_indexes (Transact-SQL)
Térbeli indexek áttekintése