Recomendaciones e instrucciones para la opción de configuración de "max degree of parallelism" en SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 2806535 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

El Microsoft SQL Server max degree of parallelism Opción de configuración (MAXDOP) controla el número de procesadores que se utilizan para la ejecución de una consulta en un plan paralelo. Esta opción determina los recursos de computación y el subproceso que se utilizan para los operadores de plan de consulta que realizan el trabajo en paralelo. Dependiendo de si SQL Server está configurado en un equipo de multiproceso simétrico (SMP), un equipo de acceso (NUMA) de memoria no uniforme o procesadores con hyperthreading habilitado, tiene que configurar el max degree of parallelism opción de forma adecuada. Este artículo describen las directrices generales que puede utilizar para configurar el max degree of parallelism opción de SQL Server cuando se utiliza el sistema sp_configure para el procedimiento almacenado.

Las sugerencias de consulta de Transact-SQL de Opción (MAXDOP) pueden reemplazar la max degree of parallelismopción en el valor de sp_configure si la consulta especifica esta opción. En SQL Server 2000, el reemplazo sólo tiene efecto si el valor que se especifica en la sugerencia es menor o igual que el valor de sp_configure . En SQL Server 2005 y versiones posteriores, el reemplazo siempre surte efecto. En SQL Server 2008 y versiones posteriores, si el valor MAXDOP supera el valor que se configuró utilizando el regulador de recursos, el motor de base de datos utiliza el valor de MAXDOP Resource Governor. Todas las reglas semánticas que se utilizan con el max degree of parallelismopción son aplicables cuando se utiliza la sugerencia de consulta MAXDOP. Las otras dos opciones que se pueden reemplazar o afecta a la configuración de MAXDOP son los siguientes:
  • NUMA suave
  • Índice en paralelo

Más información

Nota El max degree of parallelism opción de configuración produce no limitar el número de procesadores que utiliza SQL Server. Para configurar el número de procesadores que utiliza SQL Server, utilice el máscara de afinidad opción de configuración.

Utilice las siguientes directrices al configurar el valor MAXDOP.

SQL Server 2005 y versiones posteriores

  • Para los servidores que utilizan más de ocho procesadores, utilice la siguiente configuración:
    MAXDOP = 8
  • Para los servidores que utilizan procesadores de ocho o menos, utilice la siguiente configuración:
    MAXDOP = 0 toN

    Nota En esta configuración,N representa el número de procesadores.
  • Para los servidores que tienen configurado de NUMA, MAXDOP no debe superar el número de CPU que se asignan a cada nodo NUMA.
  • Para los servidores que tienen el hyperthreading habilitado, el valor MAXDOP no debe superar el número de procesadores físicos.
  • Para los servidores que tienen configurado de NUMA y hyperthreading habilitado, no debe superar el valor MAXDOP número de procesadores físicos por nodo NUMA.
Nota Utilice estas mismas instrucciones al establecer la max degree of parallelismopción para grupos de carga de trabajo del regulador de recursos.

Además, el valor máximo de 8 que se menciona en las presentes directrices es aplicable para la actividad típica de SQL Server y la sobrecarga de los operadores de exchange que se utilizan en los planes de consultas en paralelo. Este valor máximo, puede variar dependiendo de los modelos de aplicación específica y la actividad simultánea en la instancia de SQL Server. Por ejemplo, tenga en cuenta las siguientes situaciones:
  • Si tiene un número muy pequeño de las consultas que se están ejecutando al mismo tiempo en comparación con el número de procesadores, puede establecer el valor MAXDOP a un valor mayor. Por ejemplo, puede establecer el valor MAXDOP a 16.
  • Si es un tiene un número muy grande de las consultas que se están ejecutando al mismo tiempo en comparación con el número de procesadores, puede establecer el valor MAXDOP en un valor menor. Por ejemplo, puede establecer el valor MAXDOP a 4.
Nota Cualquier valor que se considere el uso se debe probar minuciosamente la actividad de la aplicación específica o un modelo de consultas antes de implementar ese valor en un servidor de producción.

SQL Server 2000 y versiones posteriores

Si SQL Server utiliza un plan en serie, utilizará un único procesador. Sin embargo, si SQL Server utiliza el paralelismo, debe usar todos los procesadores configurados (según determine la configuración de sugerencia de consulta MAXDOP) para la ejecución de un plan paralelo. Por ejemplo, si utiliza MAXDOP = 0 en un servidor de 32 vías, SQL Server intenta utilizar todos los procesadores de 32 aunque 7 procesadores podrían realizar el trabajo más eficaz en comparación con un plan en serie que utiliza un único procesador. Debido a este comportamiento todo o nada, si SQL Server utiliza el plan en paralelo, y no restringe la sugerencia de consulta MAXDOP a un valor máximo de 8, el tiempo requerido por SQL Server para coordinar todos los procesadores en un servidor de high-end supera las ventajas de utilizar un plan paralelo.

La configuración de MAXDOP se aplica a cada paso del plan. Cada paso, utilizará una CPU o el número de CPU que se especifica mediante MAXDOP y nunca nada entremedio. Si los pasos que se ejecutan en paralelo, el número de subprocesos utilizados por la consulta puede superar el valor de MAXDOP.

Para la definición de MAXDOP, consulte el tema "Grado máximo de la opción de paralelismo" o "Grado de paralelismo" en SQL Server.

Para comprender cómo funciona el paralelismo, consulte la sección "Proceso de consulta paralelo" en el tema "Arquitectura de procesador de consultas" en libros en pantalla de SQL Server.

Obtener información adicional

Para obtener más información acerca de las consultas en paralelo, consulte el siguiente sitio Web de Microsoft Developer Network (MSDN):
Grado de paralelismo
Para información sobre mejores prácticas cuando se está ejecutando una instancia de SQL Server en equipos que tienen más de 64 CPU, consulte el siguiente tema de libros en pantalla de SQL Server:
Mejores prácticas para la ejecución de SQL Server en equipos que tienen más de 64 CPU
Para instancias de SQL Server que se ejecutan en procesadores con hyperthreading habilitado, siga las recomendaciones en el siguiente artículo en Microsoft Knowledge Base:
322385 Soporte de SQL Server en un entorno de hipersubproceso
Nota Esta recomendación no se apliquen a los chips de procesador más recientes como los de la familia Intel Nehalem.

Para obtener información sobre el número de procesadores que son utilizados por SQL Server y el número de nodos NUMA que son reconocidos por SQL Server, utilice el Dynamic Management views sys.dm_os_sys_info y sys.dm_os_nodes. Para obtener más información acerca de la configuración de MAXDOP que se aplica mediante el uso de regulador de recursos, revise la información en el sys.dm_resource_governor_workload_groups de la vista de administración dinámica.

Para obtener más información acerca de los productos o herramientas que comprueban automáticamente si esta condición en una instancia de SQL Server y en las versiones del producto de SQL Server, consulte la tabla siguiente:
Contraer esta tablaAmpliar esta tabla
Software de la reglaTítulo de la reglaDescripción de la reglaVersiones del producto con el que se evalúa la regla
Best Practice Analyzer de SQL Server 2008 R2 (SQL Server 2008 R2 BPA)Grado de paralelismo no está establecida en el valor recomendadoSQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) proporciona una regla para detectar estas condiciones donde el valor adecuado para el max degree of parallelismno se configura la opción junto con el número de CPU en un nodo NUMA y también la configuración de la carga de trabajo de regulador de recursos de MAXDOP. El BPA de SQL Server 2008 R2 es compatible con SQL Server 2008 y SQL Server 2008 R2.

Si ejecuta la herramienta BPA y encontrar una advertencia de "Motor de base de datos - degree of parallelism no es establecido como valor recomendado", comparar elmax degree of parallelismvalor de opción y el valor MAXDOP de carga de trabajo de regulador de recursos con los valores recomendados que se especifican en las secciones "Resumen" y "Más información".
SQL Server 2008, SQL Server 2008 R2
SQL Server 2012 Best Practice Analyzer (BPA de SQL Server 2012)Grado de paralelismo no está establecida en el valor recomendadoSQL Server 2012 Best Practice Analyzer (BPA de SQL Server 2012) proporciona una regla para detectar estas condiciones donde el valor adecuado para max degree of parallelismno se configura la opción junto con el número de CPU en un nodo NUMA y también la configuración de la carga de trabajo de regulador de recursos de MAXDOP.

Si ejecuta la herramienta BPA y encontrar una advertencia de "Motor de base de datos - degree of parallelism no es establecido como valor recomendado", comparar elmax degree of parallelismvalor de opción y el valor MAXDOP de carga de trabajo de regulador de recursos con los valores recomendados que se especifican en las secciones "Resumen" y "Más información".
SQL Server 2012

Propiedades

Id. de artículo: 2806535 - Última revisión: miércoles, 06 de febrero de 2013 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Developer Edition
Palabras clave: 
kbinfo kbmt KB2806535 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2806535

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com