Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Si applica a:SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
database SQL in Microsoft Fabric
Questo argomento illustra come abilitare un indice disabilitato in SQL Server usando SQL Server Management Studio o Transact-SQL. Un indice, dopo la disabilitazione, rimane nello stato disabilitato finché non viene ricompilato o rimosso.
Contenuto dell'articolo
Prima di iniziare:
Per abilitare un indice disabilitato utilizzando:
Dopo la ricompilazione dell'indice, sarà necessario abilitare manualmente tutti i vincoli disabilitati in seguito alla disabilitazione dell'indice. Per abilitare i vincoli PRIMARY KEY e UNIQUE, è necessario ricompilare l'indice associato. Questo indice deve essere ricompilato (abilitato) prima di poter abilitare i vincoli FOREIGN KEY che fanno riferimento al vincolo PRIMARY KEY o UNIQUE. I vincoli FOREIGN KEY vengono abilitati utilizzando l'istruzione ALTER TABLE CHECK CONSTRAINT.
Non è possibile ricompilare un indice cluster disabilitato se l'opzione ONLINE è impostata su ON.
Se l'indice cluster è abilitato o disabilitato e l'indice non cluster è disabilitato, l'operazione sull'indice cluster ha l'effetto seguente sull'indice non cluster disabilitato.
Operazione sull'indice cluster | Indice non clusterizzato disabilitato |
---|---|
ALTER INDEX RICOSTRUISCI. | Rimane disabilitato. |
ALTER INDEX ALL REBUILD. | Viene ricostruito e abilitato. |
DROP INDEX. | Rimane disabilitato. |
CREA INDICE CON DROP_EXISTING. | Rimane disabilitato. |
La creazione di un nuovo indice cluster si comporta come ALTER INDEX ALL REBUILD.
Le operazioni consentite su indici non cluster associati a un indice cluster dipendono dallo stato, disabilitato o abilitato, di entrambi i tipi di indice. Nella tabella seguente sono riepilogate le operazioni consentite sugli indici non cluster.
Operazione sull'indice non cluster | Quando sia gli indici cluster che quelli non cluster sono disabilitati. | Quando l'indice cluster è abilitato e l'indice non cluster è in uno dei due stati. |
---|---|---|
ALTER INDEX REBUILD. | Operazione non eseguita. | Operazione eseguita. |
DROP INDEX. | Operazione eseguita. | Operazione eseguita. |
CREA INDICE CON DROP_EXISTING. | Operazione non eseguita. | Operazione eseguita. |
Durante la ricompilazione di indici non cluster compressi disabilitati, data_compression avrà come valore predefinito 'none' a indicare che gli indici saranno non compressi. A causa delle impostazioni di compressione, i metadati delle impostazioni vengono persi quando gli indici non clusterizzati sono disabilitati. Per risolvere questo problema, è necessario specificare la compressione dei dati esplicita nell'istruzione di ricompilazione.
È richiesta l'autorizzazione ALTER per la tabella o la vista. Se si usa DBCC DBREINDEX, l'utente deve essere il proprietario della tabella oppure un membro del ruolo predefinito del server sysadmin o dei ruoli predefiniti del database db_ddladmin e db_owner.
In Esplora oggetti fare clic sul segno più per espandere il database contenente la tabella in cui si desidera abilitare un indice.
Fare clic sul segno più per espandere la cartella Tabelle .
Fare clic sul segno più per espandere la tabella in cui si desidera abilitare un indice.
Fare clic sul segno più per espandere la cartella Indici .
Fare clic con il pulsante destro del mouse sull'indice che si vuole abilitare e selezionare Ricompila.
Nella finestra di dialogo Ricompila indici verificare che nella griglia Indici da ricompilare sia presente l'indice corretto e fare clic su OK.
In Esplora oggetti fare clic sul segno più per espandere il database contenente la tabella in cui si desidera abilitare gli indici.
Fare clic sul segno più per espandere la cartella Tabelle .
Fare clic sul segno più per espandere la tabella in cui si desidera abilitare gli indici.
Fare clic con il pulsante destro del mouse sulla cartella Indici e selezionare Ricompila tutto.
Nella finestra di dialogo Ricompila indici verificare che nella griglia Indici da ricompilare siano presenti gli indici corretti e fare clic su OK. Per rimuovere un indice dalla griglia Indici da ricompilare , selezionare l'indice desiderato, quindi premere il tasto CANC.
Le informazioni seguenti sono disponibili nella finestra di dialogo Ricompila indici :
In Esplora oggetti, connettersi a un'istanza del motore di database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
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
In Esplora oggetti, connettersi a un'istanza del motore di database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
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
In Esplora oggetti, connettersi a un'istanza del motore di Database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2022;
GO
-- enables the IX_Employee_OrganizationLevel_OrganizationNode index
-- on the HumanResources.Employee table
DBCC DBREINDEX ("HumanResources.Employee", IX_Employee_OrganizationLevel_OrganizationNode);
GO
In Esplora oggetti, connettersi a un'istanza del Motore di Database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2022;
GO
-- enables all indexes
-- on the HumanResources.Employee table
ALTER INDEX ALL ON HumanResources.Employee
REBUILD;
GO
In Esplora oggetti, connettersi a un'istanza del Motore di Database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2022;
GO
-- enables all indexes
-- on the HumanResources.Employee table
DBCC DBREINDEX ("HumanResources.Employee", " ");
GO
Per altre informazioni, vedere ALTER INDEX (Transact-SQL), CREATE INDEX (Transact-SQL) e DBCC DBREINDEX (Transact-SQL).
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoFormazione
Modulo
Informazioni su come creare un modello di dati, tabelle, indici, vincoli e usare i tipi di dati con Azure Data Studio.
Certificazione
Microsoft Certified: Azure Database Administrator Associate - Certifications
Amministrare un'infrastruttura di database SQL Server per database relazionali, ibridi, locali e cloud con le offerte di database relazionali Microsoft PaaS.