gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
van toepassing op:SQL Server
Azure SQL Managed Instance
Hiermee wordt een of meer indexen voor een tabel in de opgegeven database opnieuw opgebouwd.
Belangrijk
Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan ALTER INDEX.
van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
Transact-SQL syntaxisconventies
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
De naam van de tabel die de opgegeven index of indexen bevat om opnieuw te bouwen. Tabelnamen moeten voldoen aan de regels voor id's.
De naam van de index die moet worden opgebouwd. Indexnamen moeten voldoen aan de regels voor id's. Als index_name is opgegeven, moet table_name worden opgegeven. Als index_name niet is opgegeven of ' '
is, worden alle indexen voor de tabel opnieuw opgebouwd.
Het percentage ruimte op elke indexpagina voor het opslaan van gegevens wanneer de index wordt gemaakt of opnieuw wordt opgebouwd. fillfactor de vulfactor vervangt wanneer de index is gemaakt, de nieuwe standaardwaarde voor de index wordt en voor andere niet-geclusterde indexen opnieuw wordt opgebouwd, omdat een geclusterde index opnieuw wordt opgebouwd.
Wanneer fillfactor 0 is, gebruikt DBCC DBREINDEX
de waarde van de vulfactor die het laatst is opgegeven voor de index. Deze waarde wordt opgeslagen in de sys.indexes
catalogusweergave.
Als fillfactor is opgegeven, moeten table_name en index_name worden opgegeven. Als fillfactor niet is opgegeven, wordt de standaardvulfactor 100 gebruikt. Zie Vulfactor opgeven voor een index-voor meer informatie.
Onderdrukt alle informatieve berichten met ernstniveaus van 0 tot en met 10.
DBCC DBREINDEX
een index herbouwt voor een tabel of alle indexen die zijn gedefinieerd voor een tabel. Door toe te staan dat een index dynamisch opnieuw kan worden opgebouwd, kunnen indexen die primaire sleutel of UNIEKE beperkingen afdwingen, opnieuw worden opgebouwd zonder deze beperkingen te hoeven verwijderen en opnieuw te maken. Dit betekent dat een index opnieuw kan worden opgebouwd zonder de structuur van een tabel of de bijbehorende beperkingen te kennen. Dit kan gebeuren na een bulkkopie van gegevens in de tabel.
DBCC DBREINDEX
kunt alle indexen voor een tabel in één instructie opnieuw samenstellen. Dit is eenvoudiger dan het coderen van meerdere DROP INDEX
- en CREATE INDEX
-instructies. Omdat het werk door één instructie wordt uitgevoerd, is DBCC DBREINDEX
automatisch atomisch, terwijl afzonderlijke DROP INDEX
- en CREATE INDEX
-instructies moeten worden opgenomen in een transactie om atomisch te zijn. Bovendien biedt DBCC DBREINDEX
meer optimalisaties dan afzonderlijke DROP INDEX
- en CREATE INDEX
-instructies.
In tegenstelling tot DBCC INDEXDEFRAG
of ALTER INDEX
met de optie REORGANIZE
, is DBCC DBREINDEX
een offlinebewerking. Als een niet-geclusterde index opnieuw wordt opgebouwd, wordt tijdens de bewerking een gedeelde vergrendeling op de desbetreffende tabel bewaard. Hiermee voorkomt u dat wijzigingen in de tabel worden aangebracht. Als de geclusterde index opnieuw wordt opgebouwd, wordt een exclusieve tabelvergrendeling bewaard. Hierdoor voorkomt u toegang tot tabellen, waardoor de tabel effectief offline wordt gemaakt. Gebruik de ALTER INDEX REBUILD
instructie met de optie ONLINE
om online een index opnieuw op te bouwen of om de mate van parallelle uitvoering tijdens de herbouwbewerking van de index te bepalen.
Zie Indexen opnieuw ordenen en herbouwenvoor meer informatie over het selecteren van een methode voor het opnieuw samenstellen of opnieuw ordenen van een index.
DBCC DBREINDEX
wordt niet ondersteund voor gebruik op de volgende objecten:
Tenzij NO_INFOMSGS
is opgegeven (de tabelnaam moet worden opgegeven), retourneert DBCC DBREINDEX
altijd:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Aanroeper moet eigenaar zijn van de tabel of lid zijn van de sysadmin vaste serverfunctie, de db_owner vaste databaserol of de db_ddladmin vaste databaserol.
In het volgende voorbeeld wordt de Employee_EmployeeID
geclusterde index opnieuw opgebouwd met een opvulfactor van 80
in de Employee
tabel in de AdventureWorks2022
-database.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', PK_Employee_BusinessEntityID, 80);
GO
In het volgende voorbeeld worden alle indexen in de Employee
tabel in AdventureWorks2022
opnieuw opgebouwd met behulp van een opvulfactorwaarde van 70
.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', ' ', 70);
GO
gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreert