Configurar a opção de configuração de servidor max degree of parallelismConfigure the max degree of parallelism Server Configuration Option

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Este tópico descreve como configurar a opção de configuração de servidor max degree of parallelism (MAXDOP) no SQL Server 2017SQL Server 2017 usando o SQL Server Management StudioSQL Server Management Studio ou 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. Quando uma instância do SQL ServerSQL Server é executada em um computador com mais de um microprocessador ou CPU, ele detecta o melhor grau de paralelismo, ou seja, o número de processadores utilizados para executar uma única instrução, para cada execução paralela de plano.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. Você pode usar a opção max degree of parallelism para limitar o número de processadores a serem usados na execução de plano paralela.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 os planos de execução paralela para consultas, operações DDL (linguagem de definição de dados), inserção paralela, alteração online de coluna, coleta de estatísticas paralela e população de cursor estático e controlado por conjunto de chaves.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 começarBefore You Begin

Limitações e restriçõesLimitations and Restrictions

  • Se a opção de máscara de afinidade não estiver definida com o padrão, poderá restringir o número de processadores disponíveis para SQL ServerSQL Server em sistemas SMP simétricos.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.

RecomendaçõesRecommendations

  • Esta é uma opção avançada e deve ser alterada somente por um administrador de banco de dados experiente ou por um profissional de SQL ServerSQL Server certificado.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server professional.

  • Para permitir que o servidor determine o grau máximo de paralelismo, defina essa opção como 0, o valor padrão.To enable the server to determine the maximum degree of parallelism, set this option to 0, the default value. A definição do grau máximo de paralelismo como 0 permite que o SQL ServerSQL Server use todos os processadores disponíveis, até 64 processadores.Setting maximum degree of parallelism to 0 allows SQL ServerSQL Server to use all the available processors up to 64 processors. Para suprimir a geração de plano paralelo, defina max degree of parallelism como 1.To suppress parallel plan generation, set max degree of parallelism to 1. Defina o valor como um número de 1 a 32.767 para especificar o número máximo de núcleos de processador que podem ser usados por uma única execução 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. Se um valor maior do que o número de processadores disponíveis for especificado, o número real de processadores disponíveis será usado.If a value greater than the number of available processors is specified, the actual number of available processors is used. Se o computador tiver só um processador, o valor grau máximo de paralelismo será ignorado.If the computer has only one processor, the max degree of parallelism value is ignored.

  • Você pode substituir o valor max degree of parallelism nas consultas ao especificar a dica de consulta MAXDOP na instrução de consulta.You can override the max degree of parallelism value in queries by specifying the MAXDOP query hint in the query statement. Para obter mais informações, veja Dicas de consulta (Transact-SQL).For more information, see Query Hints (Transact-SQL).

  • As operações de índice que criam ou reconstroem um índice ou descartam um índice clusterizado podem usar muitos recursos.Index operations that create or rebuild an index, or that drop a clustered index, can be resource intensive. Você pode substituir o valor max degree of parallelism das operações de índice especificando a opção de índice MAXDOP na instrução de índice.You can override the max degree of parallelism value for index operations by specifying the MAXDOP index option in the index statement. O valor MAXDOP é aplicado à instrução no tempo de execução e não é armazenado nos metadados do índice.The MAXDOP value is applied to the statement at execution time and is not stored in the index metadata. Para obter mais informações, consulte Configurar operações de índice paralelo.For more information, see Configure Parallel Index Operations.

  • Além das consultas e das operações de índice, essa opção também controla o paralelismo de DBCC CHECKTABLE, DBCC CHECKDB e DBCC CHECKFILEGROUP.In addition to queries and index operations, this option also controls the parallelism of DBCC CHECKTABLE, DBCC CHECKDB, and DBCC CHECKFILEGROUP. É possível desabilitar a execução paralela de planos para essas instruções usando o sinalizador de rastreamento 2528.You can disable parallel execution plans for these statements by using trace flag 2528. Para obter mais informações, veja, Sinalizadores de rastreamento (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

DiretrizesGuidelines

A partir do SQL Server 2016 (13.x)SQL Server 2016 (13.x), durante a inicialização do serviço, se o Mecanismo de Banco de DadosDatabase Engine detectar mais de oito núcleos por nó NUMA ou soquete na inicialização, os nós soft-NUMA serão criados automaticamente por padrão.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), during service startup if the Mecanismo de Banco de DadosDatabase Engine detects more than eight physical cores per NUMA node or socket at startup, soft-NUMA nodes are created automatically by default. O Mecanismo de Banco de DadosDatabase Engine coloca os processadores lógicos do mesmo núcleo físico em nós soft-NUMA diferentes.The Mecanismo de Banco de DadosDatabase Engine places logical processors from the same physical core into different soft-NUMA nodes. As recomendações na tabela a seguir visam manter todos os threads de trabalho de uma consulta paralela dentro do mesmo nó 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. Isso melhorará o desempenho das consultas e a distribuição de threads de trabalho em todos os nós NUMA para a carga de trabalho.This will improve the performance of the queries and distribution of worker threads across the NUMA nodes for the workload. Para obter mais informações, veja Soft-NUMA.For more information, see Soft-NUMA.

A partir do SQL Server 2016 (13.x)SQL Server 2016 (13.x), use as seguintes diretrizes ao configurar o valor de configuração de servidor grau 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 com um único nó NUMAServer with single NUMA node Menor ou igual a 8 processadores lógicosLess than or equal to 8 logical processors Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicosKeep MAXDOP at or below # of logical processors
Servidor com um único nó NUMAServer with single NUMA node Mais de 8 processadores lógicosGreater than 8 logical processors Manter MAXDOP em 8Keep MAXDOP at 8
Servidor com vários nós NUMAServer with multiple NUMA nodes Menor ou igual a 16 processadores lógicos por nó NUMALess than or equal to 16 logical processors per NUMA node Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicos por nó NUMAKeep MAXDOP at or below # of logical processors per NUMA node
Servidor com vários nós NUMAServer with multiple NUMA nodes Mais de 16 processadores lógicos por nó NUMAGreater than 16 logical processors per NUMA node Manter MAXDOP em metade do número de processadores lógicos por nó NUMA com um valor MAX de 16Keep MAXDOP at half the number of logical processors per NUMA node with a MAX value of 16

Observação

O nó NUMA na tabela acima refere-se a nós soft-NUMA criados automaticamente pelo SQL Server 2016 (13.x)SQL Server 2016 (13.x) e versões superiores ou nós NUMA baseados em hardware caso soft-NUMA tenha sido desabilitado.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.
Use essas mesmas diretrizes ao definir a opção grau máximo de paralelismo para os grupos de carga de trabalho Resource Governor.Use these same guidelines when you set the max degree of parallelism option for Resource Governor workload groups. Para obter mais informações, veja CREATE WORKLOAD GROUP (Transact-SQL).For more information, see CREATE WORKLOAD GROUP (Transact-SQL).

Em SQL Server 2008SQL Server 2008 a SQL Server 2014 (12.x)SQL Server 2014 (12.x), use as seguintes diretrizes ao configurar o valor de configuração de servidor grau 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 com um único nó NUMAServer with single NUMA node Menor ou igual a 8 processadores lógicosLess than or equal to 8 logical processors Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicosKeep MAXDOP at or below # of logical processors
Servidor com um único nó NUMAServer with single NUMA node Mais de 8 processadores lógicosGreater than 8 logical processors Manter MAXDOP em 8Keep MAXDOP at 8
Servidor com vários nós NUMAServer with multiple NUMA nodes Menor ou igual a 8 processadores lógicos por nó NUMALess than or equal to 8 logical processors per NUMA node Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicos por nó NUMAKeep MAXDOP at or below # of logical processors per NUMA node
Servidor com vários nós NUMAServer with multiple NUMA nodes Mais de 8 processadores lógicos por nó NUMAGreater than 8 logical processors per NUMA node Manter MAXDOP em 8Keep MAXDOP at 8

SegurançaSecurity

PermissõesPermissions

Permissões de execução sem parâmetros ou com apenas o primeiro parâmetro em sp_configure são concedidas a todos os usuários por padrão.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. Para executar sp_configure com ambos os parâmetros para alterar uma opção de configuração ou executar a instrução RECONFIGURE, o usuário deve ter a permissão ALTER SETTINGS no nível do 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. A permissão ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin .The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Para configurar a opção max degree of parallelismTo configure the max degree of parallelism option

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.In Object Explorer, right-click a server and select Properties.

  2. Clique no nó Avançado .Click the Advanced node.

  3. Na caixa Grau Máximo de Paralelismo , selecione o número máximo de processadores a serem usados na execução de plano paralelo.In the Max Degree of Parallelism box, select the maximum number of processors to use in parallel plan execution.

Usando o Transact-SQLUsing Transact-SQL

Para configurar a opção max degree of parallelismTo configure the max degree of parallelism option

  1. Conecte-se ao Mecanismo de Banco de DadosDatabase Engine.Connect to the Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.From the Standard bar, click New Query.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.Copy and paste the following example into the query window and click Execute. Este exemplo mostra como usar o sp_configure para configurar a opção max degree of parallelism como 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 obter mais informações, veja Opções de configuração do servidor (SQL Server).For more information, see Server Configuration Options (SQL Server).

Acompanhamento: depois de configurar a opção grau máximo de paralelismoFollow Up: After you configure the max degree of parallelism option

A configuração entra em vigor imediatamente sem reiniciar o servidor.The setting takes effect immediately without restarting the server.

Consulte TambémSee Also

Opção affinity mask de configuração de servidor affinity mask Server Configuration Option
RECONFIGURE (Transact-SQL) RECONFIGURE (Transact-SQL)
Opções de configuração 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 operações de índice paralelo Configure Parallel Index Operations
Dicas de consulta (Transact-SQL) Opções Set IndexQuery Hints (Transact-SQL) Set Index Options
Recomendações e diretrizes para a opção de configuração “max degree of parallelism” no SQL ServerRecommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server