Indexen en beperkingen inschakelen
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
In dit onderwerp wordt beschreven hoe u een uitgeschakelde index in SQL Server inschakelt met behulp van SQL Server Management Studio of Transact-SQL. Nadat een index is uitgeschakeld, blijft deze in een uitgeschakelde status totdat deze opnieuw wordt opgebouwd of verwijderd
In dit onderwerp
Voordat u begint:
Als u een uitgeschakelde index wilt inschakelen, gebruikt u:
Voordat u begint
Beperkingen en beperkingen
Nadat de index opnieuw is opgebouwd, moeten eventuele beperkingen die zijn uitgeschakeld vanwege het uitschakelen van de index, handmatig worden ingeschakeld. PRIMARY KEY en UNIQUE constraints worden ingeschakeld door het herbouwen van de bijbehorende index. Deze index moet opnieuw worden opgebouwd (ingeschakeld) voordat u beperkingen voor REFERERENDE SLEUTELS kunt inschakelen die verwijzen naar de beperking PRIMAIRE SLEUTEL of UNIEK. FOREIGN KEY-beperkingen worden ingeschakeld met behulp van de instructie ALTER TABLE CHECK CONSTRAINT.
Het opnieuw samenstellen van een uitgeschakelde geclusterde index kan niet worden uitgevoerd wanneer de optie ONLINE is ingesteld op AAN.
Wanneer de geclusterde index is uitgeschakeld of ingeschakeld en de niet-geclusterde index is uitgeschakeld, heeft de geclusterde indexactie de volgende resultaten op de uitgeschakelde niet-geclusterde index.
Geclusterde indexactie Niet-geclusterde index is uitgeschakeld... ALTER INDEX REBUILD. Blijft uitgeschakeld. ALTER INDEX ALL REBUILD. Wordt opnieuw opgebouwd en ingeschakeld. DROP INDEX. Blijft uitgeschakeld. INDEX MAKEN MET DROP_EXISTING. Blijft uitgeschakeld. Het maken van een nieuwe geclusterde index gedraagt zich hetzelfde als ALTER INDEX ALL REBUILD.
Toegestane acties voor niet-geclusterde indexen die zijn gekoppeld aan een geclusterde index, zijn afhankelijk van de status, ongeacht of deze is uitgeschakeld of ingeschakeld, van beide indextypen. De volgende tabel bevat een overzicht van de toegestane acties voor niet-geclusterde indexen.
Niet-geclusterde indexactie Wanneer zowel de geclusterde als niet-geclusterde indexen zijn uitgeschakeld. Wanneer de geclusterde index is ingeschakeld en de niet-geclusterde index een van beide statussen heeft. ALTER INDEX REBUILD. De actie mislukt. De actie slaagt. DROP INDEX (verwijder index) De actie slaagt. De actie slaagt. INDEX AANMAKEN MET DROP_EXISTING. De actie mislukt. De actie slaagt. Bij het opnieuw samenstellen van gecomprimeerde niet-geclusterde indexen wordt data_compression standaard ingesteld op 'geen', wat betekent dat indexen niet worden gecomprimeerd. Dit komt doordat metagegevens van de compressie-instellingen verloren gaan wanneer niet-geclusterde indexen zijn uitgeschakeld. Om dit te omzeilen, moet u expliciete gegevenscompressie opgeven in de herbouwinstructie.
Veiligheid
Machtigingen
Vereist ALTER-machtigingen voor de tabel of weergave. Als u DBCC DBREINDEX gebruikt, moet de gebruiker eigenaar zijn van de tabel; of lid zijn van de sysadmin vaste serverfunctie; of de db_ddladmin en db_owner vaste databaserollen.
SQL Server Management Studio gebruiken
Een uitgeschakelde index inschakelen
Klik in Objectverkenner op het plusteken om de database uit te vouwen die de tabel bevat waarvoor u een index wilt inschakelen.
Klik op het plusteken om de map Tabellen uit te vouwen.
Klik op het plusteken om de tabel uit te vouwen waarop u een index wilt inschakelen.
Klik op het plusteken om de map Indexen uit te vouwen.
Klik met de rechtermuisknop op de index die u wilt inschakelen en selecteer opnieuw opbouwen.
Controleer in het dialoogvenster Indexen Opnieuw Opbouwen of de juiste index zich in het Raster voor Indexen Opnieuw Opbouwen bevindt en klik op OK.
Alle indexen in een tabel inschakelen
Klik in Objectverkenner op het plusteken om de database uit te vouwen die de tabel bevat waarop u de indexen wilt inschakelen.
Klik op het plusteken om de map Tabellen uit te vouwen.
Klik op het plusteken om de tabel uit te vouwen waarop u de indexen wilt inschakelen.
Klik met de rechtermuisknop op de map Indexen en selecteer Alles opnieuw opbouwen.
Controleer in het dialoogvenster Indexen opnieuw samenstellen of de juiste indexen zich in de Indexen bevinden om raster opnieuw te bouwen en klik op OK-. Als u een index uit de Indexen wilt verwijderen om raster opnieuw te bouwen, selecteert u de index en drukt u op Delete.
De volgende informatie is beschikbaar in het dialoogvenster Indexen herbouwen:
Transact-SQL gebruiken
Een uitgeschakelde index inschakelen met ALTER INDEX
Maak in Objectverkennerverbinding met een exemplaar van Database Engine.
Klik op de standaardbalk op Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
USE AdventureWorks2022; GO -- Enables the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table. ALTER INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee REBUILD; GO
Een uitgeschakelde index inschakelen met CREATE INDEX
Maak in Objectverkennerverbinding met een instantie van Database Engine.
Klik op de standaardbalk op Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
USE AdventureWorks2022; GO -- re-creates the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table -- using the OrganizationLevel and OrganizationNode columns -- and then deletes the existing IX_Employee_OrganizationLevel_OrganizationNode index CREATE INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee (OrganizationLevel, OrganizationNode) WITH (DROP_EXISTING = ON); GO
Een uitgeschakelde index inschakelen met DBCC DBREINDEX
Maak in Objectverkennerverbinding met een exemplaar van Database Engine.
Klik op Nieuwe queryop de standaardbalk.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
USE AdventureWorks2022; GO -- enables the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table DBCC DBREINDEX ("HumanResources.Employee", IX_Employee_OrganizationLevel_OrganizationNode); GO
Alle indexen in een tabel inschakelen met ALTER INDEX
Maak in Objectverkennerverbinding met een exemplaar van de Database Engine.
Klik op de standaardbalk op Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
USE AdventureWorks2022; GO -- enables all indexes -- on the HumanResources.Employee table ALTER INDEX ALL ON HumanResources.Employee REBUILD; GO
Alle indexen in een tabel inschakelen met DBCC DBREINDEX
Maak in Objectverkennerverbinding met een exemplaar van Database Engine.
Klik op de standaardbalk op Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
USE AdventureWorks2022; GO -- enables all indexes -- on the HumanResources.Employee table DBCC DBREINDEX ("HumanResources.Employee", " "); GO
Zie ALTER INDEX (Transact-SQL), CREATE INDEX (Transact-SQL)en DBCC DBREINDEX (Transact-SQL)voor meer informatie.