Configurar operaciones de índice en paralelo
En equipos multiprocesador que ejecuten Microsoft SQL Server 2005 Enterprise Edition, puede que las instrucciones de índice utilicen más procesadores para realizar las operaciones de recorrido y ordenación asociadas a la instrucción de índice al igual que otras consultas. El número de procesadores utilizados para ejecutar una sola instrucción de índice viene determinado por la opción de configuración max degree of parallelism y por la carga de trabajo actual. La opción max degree of parallelism limita el número de procesadores que se pueden utilizar en la ejecución de planes paralelos. Si el SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) detecta que el sistema está ocupado, el grado de paralelismo de la operación de índice se reduce automáticamente antes de comenzar la ejecución de la instrucción.
[!NOTA] Las operaciones de índice en paralelo sólo están disponibles en SQL Server 2005 Enterprise Edition.
El número de procesadores que utiliza el optimizador de consultas suele proporcionar un rendimiento óptimo. No obstante, las operaciones como la creación, reconstrucción o eliminación de índices de gran tamaño utilizan una gran cantidad de recursos y pueden provocar la falta de recursos para otras aplicaciones y operaciones de base de datos durante la operación de índice. Cuando se da este problema, se puede configurar manualmente el número de procesadores que se utilizan para ejecutar la instrucción de índice especificando la opción de índice MAXDOP y limitando el número de procesadores que se utilizarán para la operación de índice.
La opción de índice MAXDOP reemplaza la opción de configuración max degree of parallelism sólo para la consulta que especifica esta opción. En la tabla siguiente se muestran los valores enteros válidos que se pueden especificar con la opción de configuración max degree of parallelism y la opción de índice MAXDOP.
Valor | Descripción |
---|---|
0 |
Utiliza el número real de CPU disponibles en función de la carga de trabajo actual del sistema. Éste es el valor predeterminado y recomendado. |
1 |
Suprime la generación de planes paralelos. La operación se ejecutará en serie. |
2-64 |
Limita el número de procesadores al valor especificado. Puede que se utilicen menos procesadores, dependiendo de la carga de trabajo actual. Si especifica un valor superior al número de CPU disponibles, se utilizará el número real de CPU disponibles. |
La ejecución de índices en paralelo y la opción de índice MAXDOP se aplican a las instrucciones Transact-SQL siguientes:
- CREATE INDEX
- ALTER INDEX REBUILD
- DROP INDEX (esta opción sólo se aplica a los índices agrupados)
- ALTER TABLE ADD (índice) CONSTRAINT
- ALTER TABLE DROP (índice agrupado) CONSTRAINT
Se pueden aplicar todas las reglas semánticas utilizadas con la opción de configuración max degree of parallelism cuando se utiliza la opción de índice MAXDOP. Para obtener más información, vea max degree of parallelism (opción).
Cuando ejecute ALTER INDEX REORGANIZE con o sin LOB_COMPACTION, el valor de max degree of parallelism será una operación de un solo subproceso. La opción de índice MAXDOP no se puede especificar en la instrucción ALTER INDEX REORGANIZE.
Operaciones de índice en línea
Las operaciones de índice en línea permiten la actividad de usuarios simultáneos durante la operación de índice. Puede utilizar la opción MAXDOP para controlar el número de procesadores dedicados a la operación de índice en línea. De este modo, puede equilibrar los recursos utilizados por la operación de índice con los de los usuarios simultáneos. Para obtener más información, vea Realizar operaciones de índices en línea.
Operaciones de índice de partición
Los requisitos de memoria de las operaciones de índices con particiones que requieren ordenación pueden ser mayores si el optimizador de consultas aplica grados de paralelismo a la operación de generación. Cuanto mayores sean los grados de paralelismo, mayor será el requisito de memoria. Para obtener más información, vea Directrices especiales para índices con particiones.
Ejemplos
En el ejemplo siguiente se crea el índice IX
_ProductVendor
_VendorID
en la tabla ProductVendor
y se establece la opción max degree of parallelism
en 8
. Si suponemos que el servidor tiene ocho o más procesadores, el Database Engine (Motor de base de datos) limitará la ejecución de la operación de índice a ocho o menos procesadores.
USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.indexes
WHERE name = N'IX_ProductVendor_VendorID')
DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
GO
CREATE INDEX IX_ProductVendor_VendorID
ON Purchasing.ProductVendor (VendorID)
WITH (MAXDOP=8);
GO
Vea también
Conceptos
Procesar una consulta en paralelo
Otros recursos
ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE INDEX (Transact-SQL)
DROP INDEX (Transact-SQL)