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
Az ALTER TABLE használatával létrehozott kényszerdefiníció részét képező indexekre alkalmazható beállítások halmazát adja meg.
Az indexbeállítások teljes leírását az INDEX LÉTREHOZÁSA című témakörben talál.
Transact-SQL szintaxis konvenciók
Syntax
{
PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| OPTIMIZE_FOR_SEQUENTIAL_KEY = { ON | OFF }
| SORT_IN_TEMPDB = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
| DATA_COMPRESSION = { NONE | ROW | PAGE | COLUMNSTORE | COLUMNSTORE_ARCHIVE }
[ ON PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ]
| XML_COMPRESSION = { ON | OFF }
[ ON PARTITIONS ( { <partition_number_expression> | <range> }
[ , ...n ] ) ]
| ONLINE = { ON | OFF }
| RESUMABLE = { ON | OFF }
| MAX_DURATION = <time> [ MINUTES ]
}
<range> ::=
<partition_number_expression> TO <partition_number_expression>
<single_partition_rebuild__option> ::=
{
SORT_IN_TEMPDB = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
| DATA_COMPRESSION = { NONE | ROW | PAGE | COLUMNSTORE | COLUMNSTORE_ARCHIVE } }
| ONLINE = { ON [ ( <low_priority_lock_wait> ) ] | OFF }
}
<low_priority_lock_wait>::=
{
WAIT_AT_LOW_PRIORITY ( MAX_DURATION = <time> [ MINUTES ] ,
ABORT_AFTER_WAIT = { NONE | SELF | BLOCKERS } )
}
Arguments
PAD_INDEX = { ON | KI }
: SQL Server 2008 (10.0.x) és újabb verziók
Az indexek kitöltését adja meg. Az alapértelmezett érték a OFF.
ON
A megadott
FILLFACTORszabad terület százalékos aránya az index közbenső szintű lapjaira lesz alkalmazva.Ki vagy fillfactor nincs megadva
A köztes szintű lapok kapacitása megközelíti a kapacitást, így az index által megengedett legnagyobb méretnek legalább egy sora elegendő helyet hagy a köztes oldalakon található kulcsok készlete miatt.
FILLFACTOR = fillfactor
: SQL Server 2008 (10.0.x) és újabb verziók
Ez a százalék azt jelzi, hogy az adatbázismotor mennyire legyen teljes az egyes indexlapok levélszintjének az index létrehozása vagy módosítása során. A megadott értéknek 1 és 100 közötti egész számnak kell lennie. Az alapértelmezett érték 0.
Note
A 0 és a 100 kitöltési tényező értéke minden szempontból azonos.
IGNORE_DUP_KEY = { ON | KI }
Megadja a válasz típusát, amikor egy beszúrási művelet ismétlődő kulcsértékeket próbál beszúrni egy egyedi indexbe. A IGNORE_DUP_KEY beállítás csak az index létrehozása vagy újraépítése után történő beszúrási műveletekre vonatkozik. A beállításnak nincs hatása CREATE INDEX, ALTER INDEXvagy UPDATEvégrehajtásakor. Az alapértelmezett érték a OFF.
ON
Figyelmeztető üzenet jelenik meg, ha ismétlődő kulcsértékeket szúr be egy egyedi indexbe. Csak az egyediség-korlátozást megsértő sorok meghiúsulnak.
OFF
Hibaüzenet jelenik meg, ha ismétlődő kulcsértékeket szúr be egy egyedi indexbe. A teljes
INSERTművelet vissza lesz állítva.
IGNORE_DUP_KEY A nézeten, a nemunikus indexeken, az XML-indexeken, a térbeli indexeken és a szűrt indexeken létrehozott indexek nem állíthatók be ON .
A IGNORE_DUP_KEYmegtekintéséhez használja sys.indexes.
A visszamenőlegesen kompatibilis szintaxisban a WITH IGNORE_DUP_KEY egyenértékű a WITH IGNORE_DUP_KEY = ON.
STATISTICS_NORECOMPUTE = { ON | KI }
Tiltsa le vagy engedélyezze az automatikus statisztikafrissítési beállítást AUTO_STATISTICS_UPDATEa megadott indexekhez kapcsolódó statisztikák esetében. Az alapértelmezett érték a OFF.
ON
Az index újraépítése után az automatikus statisztikai frissítések le lesznek tiltva.
OFF
Az index újraépítése után az automatikus statisztikai frissítések engedélyezve lesznek.
Az automatikus statisztikák frissítésének visszaállításához állítsa a STATISTICS_NORECOMPUTEOFF, vagy hajtsa végre a UPDATE STATISTICS a NORECOMPUTE záradék nélkül.
Warning
Ha letiltja a statisztikák automatikus frissítését, az megakadályozhatja, hogy a Lekérdezésoptimalizáló optimális végrehajtási terveket válasszon a táblát tartalmazó lekérdezésekhez. Ezt a lehetőséget takarékosan, csak egy minősített adatbázis-rendszergazda használhatja.
Ez a beállítás nem akadályozza meg az indexhez kapcsolódó statisztikák teljes körű automatikus frissítését az újraépítési művelet során.
ALLOW_ROW_LOCKS = { ON | KI }
: SQL Server 2008 (10.0.x) és újabb verziók
Megadja, hogy engedélyezettek-e a sorzárolások. Az alapértelmezett érték be van kapcsolva.
ON
Az index elérésekor sorzárolások engedélyezettek. Az adatbázismotor határozza meg a sorzárolások használatát.
OFF
A sorzárak nem használhatók.
ALLOW_PAGE_LOCKS = { ON | KI }
: SQL Server 2008 (10.0.x) és újabb verziók
Megadja, hogy engedélyezettek-e az oldalzárolások. Az alapértelmezett érték be van kapcsolva.
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.
OFF
Az oldalzárakat nem használja a rendszer.
OPTIMIZE_FOR_SEQUENTIAL_KEY = { ON | KI }
A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók
Megadja, hogy az utolsó oldal beszúrására optimalizálja-e a versengést. Az alapértelmezett érték a OFF. További információt a cikk Szekvenciális kulcsok szakaszában CREATE INDEX talál.
SORT_IN_TEMPDB = { ON | KI }
: SQL Server 2008 (10.0.x) és újabb verziók
Megadja, hogy a rendezési eredményeket a következő helyen tárolja-e tempdb: . Az alapértelmezett érték a OFF.
ON
Az index létrehozásához használt köztes rendezési eredményeket a rendszer
tempdbtárolja. Ez csökkentheti az index létrehozásához szükséges időt, hatempdba felhasználói adatbázistól eltérő lemezen található. Ez azonban növeli az index buildelése során használt lemezterületet.OFF
A köztes rendezési eredmények ugyanabban az adatbázisban vannak tárolva, mint az index.
ONLINE = { ON | KI }
: SQL Server 2008 (10.0.x) és újabb verziók
Megadja, hogy a mögöttes táblák és a kapcsolódó indexek elérhetők-e a lekérdezésekhez és az adatok módosításához az indexművelet során. Az alapértelmezett érték a OFF.
REBUILD műveletként ONLINE is végrehajtható.
Note
Az egyedi nemclustered indexek nem hozhatók létre online. Ide tartoznak az indexek, amelyek egy UNIQUE vagy PRIMARY KEY több korlátozás miatt jönnek létre.
ON
A hosszú távú táblazárolások nem lesznek megtartva az indexművelet során. Az indexművelet fő fázisában csak szándékmegosztási (IS) zárolás van tárolva a forrástáblán. Ez lehetővé teszi a mögöttes tábla és indexek lekérdezéseinek vagy frissítéseinek folytatását. A művelet kezdetén egy megosztott (S) zárolás van tárolva a forrásobjektumon egy rövid ideig. A művelet végén a rendszer rövid ideig egy S (megosztott) zárolást szerez be a forráson, ha nemclustered index jön létre; vagy Sch-M (sémamódosítás) zárolást kap, amikor egy fürtözött indexet hoz létre vagy elvet online, és amikor egy fürtözött vagy nemclustered indexet újjáépít. Bár az online indexzárak rövid metaadat-zárolások, különösen a Sch-M zárolásnak meg kell várnia, amíg az összes blokkoló tranzakció befejeződik ezen a táblán. A várakozási idő alatt a Sch-M zárolás blokkolja a zárolás mögött várakozó összes többi tranzakciót, amikor ugyanahhoz a táblához fér hozzá.
ONLINEnem állítható beON, ha indexet hoz létre egy helyi ideiglenes táblában.Note
Az online index újraépítése a szakasz későbbi részében ismertetett low_priority_lock_wait beállításokat is megadhatja. low_priority_lock_wait kezeli az S és Sch-M zárolási prioritást az online index újraépítése során.
OFF
Az indexművelet során táblazárolások lesznek alkalmazva. Ez megakadályozza, hogy a művelet során minden felhasználó hozzáférjen az alapul szolgáló táblához. Egy offline indexművelet, amely fürtözött indexet hoz létre, újjáépít vagy elvet, vagy újraépít vagy elvet egy nemclustered indexet, sémamódosítási (Sch-M) zárolást szerez be a táblán. Ez megakadályozza, hogy a művelet során minden felhasználó hozzáférjen az alapul szolgáló táblához. Egy offline indexművelet, amely nemclustered indexet hoz létre, egy megosztott (S) zárolást szerez be a táblán. Ez megakadályozza a mögöttes tábla frissítéseit, de olvasási műveleteket, például
SELECTutasításokat tesz lehetővé.
További információ: Online indexműveletek működése.
Note
Az online indexelési mű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 2022 Kiadásai és támogatott funkciói című témakörben találja.
RESUMABLE = { ON | KI}
A következővonatkozik: SQL Server 2022 (16.x) és újabb verziók
Megadja, hogy egy ALTER TABLE ADD CONSTRAINT művelet folytatható-e. Ha ON, a táblamegkötés hozzáadása művelet ismét végrehajtható. A táblamegkötési művelet hozzáadása nem folytatható OFF. Az alapértelmezett érték OFF. Ha a RESUMABLE beállítás értéke be van állítva ON, a beállítás ONLINE = ON megadása kötelező.
MAX_DURATIONha a (kötelezőRESUMABLE = ON) funkcióval ONLINE = ON használja, az időt (a percekben megadott egész számértéket) jelzi, hogy a szüneteltetés előtt végrehajt egy újra használható online hozzáadási kényszerműveletet. Ha nincs megadva, a művelet a befejezésig folytatódik.
MAXDOP is támogatott RESUMABLE = ON .
Az újra felhasználható ALTER TABLE ADD CONSTRAINT műveletek engedélyezésével és használatával kapcsolatos további információkért lásd: Újraművelhető táblamegkötések hozzáadása.
MAXDOP = max_degree_of_parallelism
: SQL Server 2008 (10.0.x) és újabb verziók
Felülbírálja a párhuzamossági konfiguráció maximális mértékét az indexművelet során. További információ: A párhuzamosság maximális fokának konfigurálása (kiszolgálókonfigurációs beállítás). A párhuzamos terv végrehajtásához használt processzorok számának korlátozására használható MAXDOP . A maximális érték 64 processzor.
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 korlátozza. -
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.
Note
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 2022 Kiadásai és támogatott funkciói című témakörben találja.
DATA_COMPRESSION
: SQL Server 2008 (10.0.x) és újabb verziók
Megadja a megadott tábla, partíciószám vagy partíciótartomány adattömörítési beállítását. A lehetőségek a következők:
NONE
A tábla vagy a megadott partíciók nincsenek tömörítve. Csak a sortártáblákra vonatkozik; oszlopcentrikus táblákra nem vonatkozik.
ROW
A táblázat vagy a megadott partíciók sortömörítéssel vannak tömörítve. Csak a sortártáblákra vonatkozik; oszlopcentrikus táblákra nem vonatkozik.
PAGE
A táblázat vagy a megadott partíciók laptömörítéssel vannak tömörítve. Csak a sortártáblákra vonatkozik; oszlopcentrikus táblákra nem vonatkozik.
COLUMNSTORE
A következőkre vonatkozik: SQL Server 2014 (12.x) és újabb verziók
Csak oszlopcentrikus táblákra vonatkozik.
COLUMNSTOREa beállítással tömörített partíció felbontásátCOLUMNSTORE_ARCHIVEadja meg. Az adatok visszaállításakor azCOLUMNSTOREindex továbbra is tömörítve lesz az összes oszlopcentrikus táblához használt oszlopcentrikus tömörítéssel.COLUMNSTORE_ARCHIVE
A következőkre vonatkozik: SQL Server 2014 (12.x) és újabb verziók
Csak az oszlopcentrikus táblákra vonatkozik, amelyek fürtözött oszlopcentrikus indexben tárolt táblák.
COLUMNSTORE_ARCHIVEa megadott partíciót kisebb méretűre tömöríti. Ez felhasználható archiválásra vagy más olyan helyzetekre, amelyek kevesebb tárhelyet igényelnek, és több időt engedhetnek meg a tárolásra és a lekérésre
További információ a tömörítésről: Adattömörítési.
XML_COMPRESSION
A következővonatkozik: SQL Server 2022 (16.x) és újabb verziók, Azure SQL Database és felügyelt Azure SQL-példány.
Megadja a táblázat bármely XML- adattípus-oszlopának XML-tömörítési beállítását. A lehetőségek a következők:
ON
A xml adattípust használó oszlopok tömörítve vannak.
OFF
Az xml adattípust használó oszlopok nem tömöríthetők.
PARTÍCIÓKON ( { <partition_number_expression> | <tartomány> } [ ,...n ] )
: SQL Server 2008 (10.0.x) és újabb verziók
Meghatározza azokat a partíciókat, amelyekre a DATA_COMPRESSION vagy XML_COMPRESSION beállítások vonatkoznak. Ha a tábla nincs particionálva, a ON PARTITIONS argumentum hibát okoz. Ha a ON PARTITIONS záradék nincs megadva, az vagy DATA_COMPRESSION a XML_COMPRESSION beállítás a particionált tábla összes partíciójára vonatkozik.
<partition_number_expression> a következő módokon adhatók meg:
- Adja meg a partíció számát, például:
ON PARTITIONS (2). - Adja meg a partíciószámokat több, vesszővel elválasztott partícióhoz, például:
ON PARTITIONS (1, 5). - Adja meg a tartományokat és az egyes partíciókat, például:
ON PARTITIONS (2, 4, 6 TO 8).
<range> megadható a TO szóval elválasztott partíciószámokként, például: ON PARTITIONS (6 TO 8).
Ha különböző típusú adattömörítést szeretne beállítani a különböző partíciókhoz, adja meg többször a DATA_COMPRESSION beállítást, például:
--For rowstore tables
REBUILD WITH
(
DATA_COMPRESSION = NONE ON PARTITIONS (1),
DATA_COMPRESSION = ROW ON PARTITIONS (2, 4, 6 TO 8),
DATA_COMPRESSION = PAGE ON PARTITIONS (3, 5)
)
--For columnstore tables
REBUILD WITH
(
DATA_COMPRESSION = COLUMNSTORE ON PARTITIONS (1, 3, 5),
DATA_COMPRESSION = COLUMNSTORE_ARCHIVE ON PARTITIONS (2, 4, 6 TO 8)
)
<single_partition_rebuild__option>
Az indexek újraépítése a legtöbb esetben a particionált indexek összes partícióját is újraépíti. Az alábbi beállítások egyetlen partícióra alkalmazva nem építik újra az összes partíciót.
SORT_IN_TEMPDBMAXDOPDATA_COMPRESSIONXML_COMPRESSION
low_priority_lock_wait
A következőkre vonatkozik: SQL Server 2014 (12.x) és újabb verziók
Egy SWITCH vagy online index újraépítése azonnal befejeződik, amint nincs blokkoló művelet a táblához.
WAIT_AT_LOW_PRIORITY azt jelzi, hogy ha az SWITCH online index újraépítési művelete nem hajtható végre azonnal, akkor az várni fog. A művelet alacsony prioritású zárolásokat tartalmaz, így a DDL utasítással ütköző zárolásokat tartalmazó egyéb műveletek is folytathatók. A WAIT AT LOW PRIORITY lehetőség kihagyása egyenértékű a WAIT_AT_LOW_PRIORITY ( MAX_DURATION = 0 minutes, ABORT_AFTER_WAIT = NONE).
MAX_DURATION = idő [ PERC ]
Az a várakozási idő (percekben megadott egész szám), amelyet a SWITCH beolvasandó vagy az online index újraépítése zárol, a DDL-parancs végrehajtásakor várakozik. Az SWITCH online index újraépítési művelete azonnal befejeződik. Ha a művelet egyelőre MAX_DURATION le van tiltva, az ABORT_AFTER_WAIT egyik művelet végrehajtásra kerül.
MAX_DURATION idő mindig percekben van, és a MINUTES szó kihagyható.
ABORT_AFTER_WAIT = { NONE | SELF | BLOKKOLÓK }
NONE
A zárolási prioritás módosítása nélkül (normál prioritás használatával) folytatja az
SWITCHonline index újraépítési műveletet.SELF
Az aktuálisan végrehajtott DDL-művelet végrehajtása nélkül kilép az
SWITCHonline index újraépítési vagy újraépítési műveletből.BLOCKERS
A DDL-műveletet jelenleg
SWITCHletiltó vagy online index-újraépítési DDL-műveletet letiltó összes felhasználói tranzakciót leállít, hogy a művelet folytatható legyen.BLOCKERSengedélyreALTER ANY CONNECTIONvan szükség.