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
Schijfruimte is een belangrijke overweging bij het maken, herbouwen of verwijderen van indexen. Onvoldoende schijfruimte kan de prestaties verminderen of zelfs leiden tot een storing in de indexbewerking. Dit artikel bevat algemene informatie die u kan helpen bij het bepalen van de hoeveelheid schijfruimte die nodig is voor DDL-bewerkingen (Index Data Definition Language).
Indexbewerkingen waarvoor geen extra schijfruimte nodig is
Voor de volgende indexbewerkingen is geen extra schijfruimte vereist:
ALTER INDEX REORGANIZE; er is echter logboekruimte vereist.DROP INDEXwanneer u een niet-geclusterde index verwijdert.DROP INDEXwanneer u een geclusterde index offline haalt zonder deMOVE TOcomponent en er geen niet-geclusterde indexen bestaan.CREATE TABLE(PRIMARY KEYofwelUNIQUEbeperkingen)
Indexbewerkingen waarvoor extra schijfruimte is vereist
Alle andere DDL-indexbewerkingen vereisen extra tijdelijke schijfruimte die tijdens de bewerking moet worden gebruikt en permanente schijfruimte om de nieuwe indexstructuur of -structuren op te slaan.
Wanneer er een nieuwe indexstructuur wordt gemaakt, is schijfruimte voor zowel de oude (bron) als de nieuwe (doel) structuren vereist in de juiste bestanden en bestandsgroepen. De oude structuur wordt pas vrijgegeven nadat de transactie voor het aanmaken van de index is voltooid.
De volgende DDL-indexbewerkingen maken nieuwe indexstructuren en vereisen extra schijfruimte:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYofUNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEYofUNIQUE) wanneer de beperking is gebaseerd op een geclusterde index -
DROP INDEX MOVE TO(Alleen van toepassing op geclusterde indexen.)
Tijdelijke schijfruimte voor sorteren
Naast de benodigde schijfruimte voor de bron- en doelstructuren is tijdelijke schijfruimte vereist voor het sorteren, tenzij de queryoptimalisatie een uitvoeringsplan vindt waarvoor geen sortering is vereist.
Als er sortering nodig is, vindt de sortering één voor één per nieuwe index plaats. Wanneer u bijvoorbeeld een geclusterde index en gekoppelde niet-geclusterde indexen samenbouwt binnen één instructie, worden de indexen één na de andere gesorteerd. Daarom hoeft de extra tijdelijke schijfruimte die nodig is voor sorteren, alleen zo groot te zijn als de grootste index in de bewerking. Dit is bijna altijd de geclusterde index.
Als de SORT_IN_TEMPDB optie is ingesteld op ON, moet de grootste index in tempdbpassen. Hoewel deze optie de hoeveelheid tijdelijke schijfruimte verhoogt die wordt gebruikt om een index te maken, kan dit de tijd verkorten die nodig is om een index te maken wanneer tempdb zich op een set schijven bevindt die afwijken van de gebruikersdatabase.
Als SORT_IN_TEMPDB is ingesteld op OFF (de standaardinstelling), worden elke index, inclusief gepartitioneerde indexen, gesorteerd in de doelschijfruimte; en alleen de schijfruimte voor de nieuwe indexstructuren is vereist.
Zie het voorbeeld van de indexschijfruimte voor een voorbeeld van het berekenen van schijfruimte.
Tijdelijke schijfruimte voor online indexbewerkingen
Wanneer u indexbewerkingen online uitvoert, is extra tijdelijke schijfruimte vereist.
Als een geclusterde index wordt gemaakt, opnieuw wordt opgebouwd of online wordt verwijderd, wordt er een tijdelijke niet-geclusterde index gemaakt om oude bladwijzers toe te wijzen aan nieuwe bladwijzers. Als de SORT_IN_TEMPDB optie is ingesteld op ON, wordt deze tijdelijke index gemaakt in tempdb. Als SORT_IN_TEMPDB is ingesteld op OFF, wordt hetzelfde bestandsgroep- of partitieschema gebruikt als de doelindex. De tijdelijke toewijzingsindex bevat één record voor elke rij in de tabel en de inhoud ervan is de samenvoeging van de oude en nieuwe bladwijzerkolommen, waaronder unieke classificaties en record-id's en slechts één kopie van een kolom die in beide bladwijzers wordt gebruikt. Zie Indexbewerkingen online uitvoeren voor meer informatie over online indexbewerkingen.
Opmerking
De SORT_IN_TEMPDB optie kan niet worden ingesteld voor de DROP INDEX instructies. De tijdelijke toewijzingsindex wordt altijd gemaakt in dezelfde bestandsgroep of hetzelfde partitieschema als de doelindex.
Online indexbewerkingen maken gebruik van rijversiebeheer om de indexbewerking te isoleren van de effecten van wijzigingen die door andere transacties zijn aangebracht. Hierdoor hoeft u geen gedeelde vergrendelingen aan te vragen voor rijen die zijn gelezen. Gelijktijdige bewerkingen voor het bijwerken en verwijderen van gebruikers tijdens online indexbewerkingen vereisen ruimte voor versierecords in tempdb. Zie Indexbewerkingen online uitvoeren voor meer informatie.
Gerelateerde taken
- Voorbeeld van indexschijfruimte
- Schijfruimte voor transactielogboeken voor indexbewerkingen
- De grootte van een tabel schatten
- De grootte van een geclusterde index schatten
- De grootte van een niet-geclusterde index schatten
- De grootte van een geheugenhoop schatten