Establecer la opción de configuración del servidor Grado máximo de paralelismoConfigure the max degree of parallelism Server Configuration Option

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

En este tema se describe cómo establecer la opción de configuración del servidor grado máximo de paralelismo (MAXDOP) en SQL Server 2017SQL Server 2017 mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to configure the max degree of parallelism (MAXDOP) server configuration option in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Cuando una instancia de SQL ServerSQL Server se ejecuta en un equipo con más de un microprocesador o CPU, detecta el mejor grado de paralelismo, es decir, el número de procesadores que se emplea para ejecutar una única instrucción en cada ejecución de planes en paralelo.When an instance of SQL ServerSQL Server runs on a computer that has more than one microprocessor or CPU, it detects the best degree of parallelism, that is, the number of processors employed to run a single statement, for each parallel plan execution. Puede utilizar la opción max degree of parallelism (grado máximo de paralelismo) para limitar el número de procesadores que debe utilizarse en la ejecución de planes en paralelo.You can use the max degree of parallelism option to limit the number of processors to use in parallel plan execution. SQL ServerSQL Server considera los planes de ejecución en paralelo para las consultas, las operaciones de lenguaje de definición de datos (DDL) de índice, la inserción en paralelo, la modificación de columna en línea, la colección de estadísticas en paralelo y el rellenado de cursor estático y controlado por conjuntos de claves.considers parallel execution plans for queries, index data definition language (DDL) operations, parallel insert, online alter column, parallel stats collection, and static and keyset-driven cursor population.

Antes de comenzarBefore You Begin

Limitaciones y restriccionesLimitations and Restrictions

  • Si el valor de la opción affinity mask no es el predeterminado, es posible que se limite el número de procesadores disponibles para SQL ServerSQL Server en sistemas de multiproceso simétrico (SMP).If the affinity mask option is not set to the default, it may restrict the number of processors available to SQL ServerSQL Server on symmetric multiprocessing (SMP) systems.

RecomendacionesRecommendations

  • Esta opción es avanzada y solo debe cambiarla un administrador de base de datos con experiencia o un profesional certificado de SQL ServerSQL Server.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server professional.

  • Para que el servidor pueda determinar el Grado máximo de paralelismo, establezca esta opción en 0, que es el valor predeterminado.To enable the server to determine the maximum degree of parallelism, set this option to 0, the default value. Si se establece el grado máximo de paralelismo en 0, SQL ServerSQL Server puede usar todos los procesadores disponibles hasta un número de 64.Setting maximum degree of parallelism to 0 allows SQL ServerSQL Server to use all the available processors up to 64 processors. Para suprimir la generación de planes paralelos, establezca la opción max degree of parallelism en 1.To suppress parallel plan generation, set max degree of parallelism to 1. Establezca el valor en un número de 1 a 32.767 para especificar el número máximo de núcleos de procesador que puede usar una única ejecución de consulta.Set the value to a number from 1 to 32,767 to specify the maximum number of processor cores that can be used by a single query execution. Si se especifica un valor superior al número de procesadores disponibles, se utilizará el número real de procesadores disponibles.If a value greater than the number of available processors is specified, the actual number of available processors is used. Si el equipo tiene solo un procesador, el valor de grado máximo de paralelismo se pasará por alto.If the computer has only one processor, the max degree of parallelism value is ignored.

  • Puede omitir el valor de la opción max degree of parallelism especificando la sugerencia de consulta MAXDOP en la instrucción de la consulta.You can override the max degree of parallelism value in queries by specifying the MAXDOP query hint in the query statement. Para obtener más información, vea Sugerencias de consulta (Transact-SQL).For more information, see Query Hints (Transact-SQL).

  • Las operaciones de índice que crean o vuelven a generar un índice, o que eliminan un índice clúster, pueden consumir recursos de forma intensiva.Index operations that create or rebuild an index, or that drop a clustered index, can be resource intensive. Puede omitir el valor de la opción max degree of parallelism para operaciones de índice especificando la opción de índice MAXDOP en la instrucción del índice.You can override the max degree of parallelism value for index operations by specifying the MAXDOP index option in the index statement. El valor de MAXDOP se aplica a la instrucción en tiempo de ejecución y no se almacena en los metadatos del índice.The MAXDOP value is applied to the statement at execution time and is not stored in the index metadata. Para obtener más información, vea Configurar operaciones de índice en paralelo.For more information, see Configure Parallel Index Operations.

  • Además de las operaciones de consultas e índices, esta opción también controla el paralelismo de DBCC CHECKTABLE, DBCC CHECKDB y DBCC CHECKFILEGROUP.In addition to queries and index operations, this option also controls the parallelism of DBCC CHECKTABLE, DBCC CHECKDB, and DBCC CHECKFILEGROUP. Puede deshabilitar los planes de ejecución en paralelo de estas instrucciones mediante el uso de la marca de seguimiento 2528.You can disable parallel execution plans for these statements by using trace flag 2528. Para obtener más información, vea Marcas de seguimiento (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

InstruccionesGuidelines

A partir de SQL Server 2016 (13.x)SQL Server 2016 (13.x), durante el inicio del servicio, si Motor de base de datosDatabase Engine detecta más de ocho núcleos físicos por nodo NUMA o socket en el inicio, se crean nodos soft-NUMA de forma automática y predeterminada.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), during service startup if the Motor de base de datosDatabase Engine detects more than eight physical cores per NUMA node or socket at startup, soft-NUMA nodes are created automatically by default. Motor de base de datosDatabase Engine coloca los procesadores lógicos del mismo núcleo físico en nodos soft-NUMA diferentes.The Motor de base de datosDatabase Engine places logical processors from the same physical core into different soft-NUMA nodes. Las recomendaciones de la tabla siguiente están pensadas para mantener todos los subprocesos de trabajo de una consulta en paralelo en el mismo nodo soft-NUMA.The recommendations in the table below are aimed at keeping all the worker threads of a parallel query within the same soft-NUMA node. Esto mejorará el rendimiento de las consultas y la distribución de los subprocesos de trabajo entre los nodos NUMA para la carga de trabajo.This will improve the performance of the queries and distribution of worker threads across the NUMA nodes for the workload. Para obtener más información, vea Soft-NUMA.For more information, see Soft-NUMA.

A partir de SQL Server 2016 (13.x)SQL Server 2016 (13.x), use las siguientes directrices al configurar el valor de configuración del servidor de grado máximo de paralelismo:Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), use the following guidelines when you configure the max degree of parallelism server configuration value:

Servidor con un solo nodo NUMAServer with single NUMA node 8 procesadores lógicos como mínimoLess than or equal to 8 logical processors Mantener MAXDOP en ese número de procesadores lógicos o por debajo de esteKeep MAXDOP at or below # of logical processors
Servidor con un solo nodo NUMAServer with single NUMA node Más de 8 procesadores lógicosGreater than 8 logical processors Mantener MAXDOP en 8Keep MAXDOP at 8
Servidor con varios nodos NUMAServer with multiple NUMA nodes 16 procesadores lógicos como mínimo por nodo NUMALess than or equal to 16 logical processors per NUMA node Mantener MAXDOP en ese número de procesadores lógicos por nodo NUMA o por debajo de esteKeep MAXDOP at or below # of logical processors per NUMA node
Servidor con varios nodos NUMAServer with multiple NUMA nodes Más de 16 procesadores lógicos por nodo NUMAGreater than 16 logical processors per NUMA node Mantener MAXDOP a la mitad del número de procesadores lógicos por nodo de NUMA con un valor máximo de 16Keep MAXDOP at half the number of logical processors per NUMA node with a MAX value of 16

Nota

El nodo NUMA de la tabla anterior hace referencia a los nodos NUMA de software creados automáticamente mediante SQL Server 2016 (13.x)SQL Server 2016 (13.x) y versiones posteriores, o a los nodos NUMA basados en hardware en caso de que el nodo NUMA de software esté deshabilitado.NUMA node in the above table refers to soft-NUMA nodes automatically created by SQL Server 2016 (13.x)SQL Server 2016 (13.x) and higher versions, or hardware-based NUMA nodes if soft-NUMA has been disabled.
Utilice estas mismas instrucciones al establecer la opción de grado máximo de paralelismo de los grupos de cargas de trabajo de Resource Governor.Use these same guidelines when you set the max degree of parallelism option for Resource Governor workload groups. Para obtener más información, vea CREATE WORKLOAD GROUP (Transact-SQL).For more information, see CREATE WORKLOAD GROUP (Transact-SQL).

De SQL Server 2008SQL Server 2008 a SQL Server 2014 (12.x)SQL Server 2014 (12.x), use las siguientes directrices al configurar el valor de configuración del servidor de grado máximo de paralelismo:From SQL Server 2008SQL Server 2008 through SQL Server 2014 (12.x)SQL Server 2014 (12.x), use the following guidelines when you configure the max degree of parallelism server configuration value:

Servidor con un solo nodo NUMAServer with single NUMA node 8 procesadores lógicos como mínimoLess than or equal to 8 logical processors Mantener MAXDOP en ese número de procesadores lógicos o por debajo de esteKeep MAXDOP at or below # of logical processors
Servidor con un solo nodo NUMAServer with single NUMA node Más de 8 procesadores lógicosGreater than 8 logical processors Mantener MAXDOP en 8Keep MAXDOP at 8
Servidor con varios nodos NUMAServer with multiple NUMA nodes 8 procesadores lógicos como mínimo por nodo NUMALess than or equal to 8 logical processors per NUMA node Mantener MAXDOP en ese número de procesadores lógicos por nodo NUMA o por debajo de esteKeep MAXDOP at or below # of logical processors per NUMA node
Servidor con varios nodos NUMAServer with multiple NUMA nodes Más de 8 procesadores lógicos por nodo NUMAGreater than 8 logical processors per NUMA node Mantener MAXDOP en 8Keep MAXDOP at 8

SeguridadSecurity

PermisosPermissions

De forma predeterminada, todos los usuarios tienen permisos de ejecución en sp_configure sin ningún parámetro o solo con el primero.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. Para ejecutar sp_configure con ambos parámetros y cambiar una opción de configuración, o para ejecutar la instrucción RECONFIGURE, un usuario debe tener el permiso ALTER SETTINGS en el servidor.To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. Los roles fijos de servidor sysadmin y serveradmin tienen el permiso ALTER SETTINGS de forma implícita.The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Para configurar la opción de grado máximo de paralelismoTo configure the max degree of parallelism option

  1. En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.In Object Explorer, right-click a server and select Properties.

  2. Haga clic en el nodo Avanzado .Click the Advanced node.

  3. En el cuadro Grado máximo de paralelismo , seleccione el número máximo de procesadores que se usarán en la ejecución de planes paralelos.In the Max Degree of Parallelism box, select the maximum number of processors to use in parallel plan execution.

Usar Transact-SQLUsing Transact-SQL

Para configurar la opción de grado máximo de paralelismoTo configure the max degree of parallelism option

  1. Conéctese con el Motor de base de datosDatabase Engine.Connect to the Motor de base de datosDatabase Engine.

  2. En la barra Estándar, haga clic en Nueva consulta.From the Standard bar, click New Query.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.Copy and paste the following example into the query window and click Execute. En este ejemplo se muestra cómo usar sp_configure para configurar la opción max degree of parallelism en 8.This example shows how to use sp_configure to configure the max degree of parallelism option to 8.

USE AdventureWorks2012 ;  
GO   
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  
EXEC sp_configure 'max degree of parallelism', 16;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  

Para obtener más información, vea Opciones de configuración de servidor (SQL Server).For more information, see Server Configuration Options (SQL Server).

Seguimiento: Después de configurar la opción de grado máximo de paralelismoFollow Up: After you configure the max degree of parallelism option

La configuración surte efecto inmediatamente, sin necesidad de reiniciar el servidor.The setting takes effect immediately without restarting the server.

Consulte tambiénSee Also

affinity mask (opción de configuración del servidor) affinity mask Server Configuration Option
RECONFIGURE (Transact-SQL) RECONFIGURE (Transact-SQL)
Opciones de configuración de servidor (SQL Server) sp_configure (Transact-SQL) Server Configuration Options (SQL Server) sp_configure (Transact-SQL)
CREATE INDEX (Transact-SQL) CREATE INDEX (Transact-SQL)
ALTER INDEX (Transact-SQL) ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL) DBCC CHECKTABLE (Transact-SQL)
DBCC CHECKDB (Transact-SQL) DBCC CHECKDB (Transact-SQL)
DBCC CHECKFILEGROUP (Transact-SQL) DBCC CHECKFILEGROUP (Transact-SQL)
Configurar operaciones de índice en paralelo Configure Parallel Index Operations
Sugerencias de consulta (Transact-SQL) Establecer opciones de índiceQuery Hints (Transact-SQL) Set Index Options
Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server (Recomendaciones y directrices relativas a la opción de configuración "grado máximo de paralelismo" en SQL Server)Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server