Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Diskutrymme är viktigt när du skapar, återskapar eller släpper index. Otillräckligt diskutrymme kan försämra prestanda eller till och med orsaka att indexåtgärden misslyckas. Den här artikeln innehåller allmän information som kan hjälpa dig att fastställa hur mycket diskutrymme som krävs för DDL-åtgärder (Index Data Definition Language).
Indexåtgärder som inte kräver något ytterligare diskutrymme
Följande indexåtgärder kräver inget ytterligare diskutrymme:
ALTER INDEX REORGANIZE; Loggutrymme krävs dock.DROP INDEXnär du släpper ett icke-grupperat index.DROP INDEXnär du tar bort ett klustrat index offline utan att angeMOVE TOklausulen och icke-klustrade index inte finns.CREATE TABLE(PRIMARY KEYellerUNIQUEbegränsningar)
Indexåtgärder som kräver ytterligare diskutrymme
Alla andra index-DDL-åtgärder kräver ytterligare tillfälligt diskutrymme som ska användas under åtgärden och permanent diskutrymme för att lagra den nya indexstrukturen eller strukturerna.
När en ny indexstruktur skapas krävs diskutrymme för både de gamla (källa) och nya (målstrukturerna) i lämpliga filer och filgrupper. Den gamla strukturen frisläpps inte förrän transaktionen för att skapa indexet bekräftas.
Följande index-DDL-åtgärder skapar nya indexstrukturer och kräver ytterligare diskutrymme:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYellerUNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEYellerUNIQUE) när villkoret baseras på ett grupperat index -
DROP INDEX MOVE TO(Gäller endast för klustrade index.)
Tillfälligt diskutrymme för sortering
Förutom det diskutrymme som krävs för käll- och målstrukturerna krävs tillfälligt diskutrymme för sortering, såvida inte frågeoptimeraren hittar en körningsplan som inte kräver sortering.
Om sortering krävs sker sortering ett nytt index i taget. När du till exempel återskapar ett klustrat index och associerade icke-grupperade index i en enda instruktion sorteras indexen en efter en. Därför behöver det extra temporära diskutrymme som krävs för sortering bara vara lika stort som det största indexet i åtgärden. Det här är nästan alltid det klustrade indexet.
Om alternativet SORT_IN_TEMPDB är inställt på ONmåste det största indexet passa in i tempdb. Även om det här alternativet ökar mängden tillfälligt diskutrymme som används för att skapa ett index, kan det minska den tid som krävs för att skapa ett index när tempdb det finns på en uppsättning diskar som skiljer sig från användardatabasen.
Om SORT_IN_TEMPDB är inställt på OFF (standard) sorteras varje index, inklusive partitionerade index, i måldiskutrymmet, och endast diskutrymmet för de nya indexstrukturerna krävs.
Ett exempel på hur du beräknar diskutrymme finns i Exempel på indexering av diskutrymme.
Tillfälligt diskutrymme för onlineindexåtgärder
När du utför indexåtgärder online krävs ytterligare tillfälligt diskutrymme.
Om ett grupperat index skapas, återskapas eller tas bort online skapas ett tillfälligt icke-grupperat index för att mappa gamla bokmärken till nya bokmärken. Om alternativet SORT_IN_TEMPDB är inställt på ONskapas det här tillfälliga indexet i tempdb. Om SORT_IN_TEMPDB är inställt på OFFanvänds samma filgrupps- eller partitionsschema som målindexet. Det tillfälliga mappningsindexet innehåller en post för varje rad i tabellen, och dess innehåll är en union av de gamla och nya bokmärkeskolumnerna, inklusive unika identifierare och postidentifierare och en enda kopia av varje kolumn som används i båda bokmärkena. Mer information om onlineindexåtgärder finns i Utföra indexåtgärder online.
Anmärkning
Alternativet SORT_IN_TEMPDB kan inte anges för DROP INDEX instruktioner. Det tillfälliga mappningsindexet skapas alltid i samma filgrupps- eller partitionsschema som målindexet.
Onlineindexåtgärder använder radversionshantering för att isolera indexåtgärden från effekterna av ändringar som gjorts av andra transaktioner. Detta förhindrar behovet av att begära delningslås på rader som har lästs. Samtidiga åtgärder för uppdatering och borttagning av användare under onlineindexåtgärder kräver utrymme för versionsposter i tempdb. Mer information finns i Utföra indexåtgärder online .
Relaterade uppgifter
- Exempel på indexdiskutrymme
- Diskutrymme för transaktionsloggar för indexåtgärder
- Beräkna storleken på en tabell
- Beräkna storleken på ett grupperat index
- Beräkna storleken på ett icke-grupperat index
- Beräkna storleken på en hög