Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo habilitar un índice deshabilitado en SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL. Una vez deshabilitado un índice, permanece deshabilitado hasta que se vuelve a generar o eliminar.
En este tema
Antes de comenzar:
Para habilitar un índice deshabilitado, use:
Antes de empezar
Limitaciones y restricciones
Después de volver a generar el índice, las restricciones que se deshabilitaron debido a la deshabilitación del índice deben habilitarse manualmente. Las restricciones PRIMARY KEY y UNIQUE están habilitadas mediante la reconstrucción del índice asociado. Este índice debe volver a generarse (habilitarse) antes de poder habilitar las restricciones de FOREIGN KEY que hacen referencia a la restricción de PRIMARY KEY o UNIQUE. Las restricciones FOREIGN KEY se habilitan mediante la instrucción ALTER TABLE CHECK CONSTRAINT.
No se puede volver a generar un índice clúster deshabilitado cuando la opción ONLINE está establecida en ON.
Cuando el índice clúster está deshabilitado o habilitado y el índice no clúster está deshabilitado, la acción de índice agrupado tiene los siguientes resultados en el índice no clúster deshabilitado.
Acción de índice agrupado Índice no clúster deshabilitado ... ALTER INDEX REBUILD. Permanece deshabilitado. The English syntax remains unchanged as it is standard SQL syntax. Therefore, no improvements are necessary to the translation itself. Se reconstruye y se habilita. DROP INDEX (Eliminar índice). Permanece deshabilitado. CREAR ÍNDICE CON DROP_EXISTING. Permanece deshabilitado. Crear un nuevo índice agrupado tiene el mismo efecto que ejecutar ALTER INDEX ALL REBUILD.
Las acciones permitidas en índices no clúster asociados a un índice agrupado dependen del estado, ya sea deshabilitado o habilitado, de ambos tipos de índice. En la tabla siguiente se resumen las acciones permitidas en índices no clúster.
Acción de índice no agrupado Cuando los índices agrupados y no agrupados están deshabilitados. Cuando el índice clúster está habilitado y el índice no clúster está en cualquier estado. ALTER INDEX REBUILD. Se produce un error en la acción. La acción tiene éxito. ELIMINAR ÍNDICE. La acción tiene éxito. La acción tiene éxito. CREAR ÍNDICE CON ELIMINACIÓN_EXISTENTE. Se produce un error en la acción. La acción tiene éxito.
Seguridad
Permisos
Requiere el permiso ALTER en la tabla o vista. Si usa DBCC DBREINDEX, el usuario debe ser propietario de la tabla o ser miembro del rol fijo de servidor sysadmin o de los roles fijos de base de datos db_ddladmin y db_owner.
Uso de SQL Server Management Studio
Para habilitar un índice deshabilitado
En el Explorador de objetos, haga clic en el signo más para expandir la base de datos que contiene la tabla en la que desea habilitar un índice.
Haga clic en el signo más para expandir la carpeta Tablas .
Haga clic en el signo más para expandir la tabla en la que desea habilitar un índice.
Haga clic en el signo más para expandir la carpeta Índices .
Haga clic con el botón derecho en el índice que desea habilitar y seleccione Recompilar.
En el cuadro de diálogo Recompilar índices , compruebe que el índice correcto está en la cuadrícula Índices para recompilar y haga clic en Aceptar.
Para habilitar todos los índices de una tabla
En el Explorador de objetos, haga clic en el signo más para expandir la base de datos que contiene la tabla en la que desea habilitar los índices.
Haga clic en el signo más para expandir la carpeta Tablas .
Haga clic en el signo más para expandir la tabla en la que desea habilitar los índices.
Haga clic con el botón derecho en la carpeta Índices y seleccione Recompilar todo.
En el cuadro de diálogo Recompilar índices , compruebe que los índices correctos están en la cuadrícula Índices para recompilar y haga clic en Aceptar. Para quitar un índice de la cuadrícula Índices para recompilar , seleccione el índice y presione la tecla Eliminar.
La siguiente información está disponible en el cuadro de diálogo Recompilar índices :
Uso de Transact-SQL
Para habilitar un índice deshabilitado mediante ALTER INDEX
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra de Estándar, haga clic en Nueva consulta.
Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
USE AdventureWorks2012; GO -- Enables the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table. ALTER INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee REBUILD; GO
Para habilitar un índice deshabilitado mediante CREATE INDEX
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra de Estándar, haga clic en Nueva consulta.
Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
USE AdventureWorks2012; 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
Para habilitar un índice deshabilitado mediante DBCC DBREINDEX
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra de Estándar, haga clic en Nueva consulta.
Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
USE AdventureWorks2012; GO -- enables the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table DBCC DBREINDEX ("HumanResources.Employee", IX_Employee_OrganizationLevel_OrganizationNode); GO
Para habilitar todos los índices de una tabla mediante ALTER INDEX
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra de Estándar, haga clic en Nueva consulta.
Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
USE AdventureWorks2012; GO -- enables all indexes -- on the HumanResources.Employee table ALTER INDEX ALL ON HumanResources.Employee REBUILD; GO
Para habilitar todos los índices de una tabla mediante DBCC DBREINDEX
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra de Estándar, haga clic en Nueva consulta.
Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
USE AdventureWorks2012; GO -- enables all indexes -- on the HumanResources.Employee table DBCC DBREINDEX ("HumanResources.Employee", " "); GO
Para obtener más información, vea ALTER INDEX (Transact-SQL), CREATE INDEX (Transact-SQL)y DBCC DBREINDEX (Transact-SQL).