Configurar operações de índice paraleloConfigure Parallel Index Operations

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

Este tópico define o grau máximo de paralelismo e explica como modificar essa configuração no SQL Server 2017SQL Server 2017 usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic defines max degree of parallelism and explains how to modify this setting in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Em computadores multiprocessadores em execução no SQL ServerSQL Server Enterprise ou superior, as instruções de índice podem usar vários processadores para executar operações de verificação, classificação e índice associadas à instrução de índice da mesma forma que outras consultas.On multiprocessor computers that are running SQL ServerSQL Server Enterprise or higher, index statements may use multiple processors to perform the scan, sort, and index operations associated with the index statement just like other queries do. O número de processadores usados para executar uma única instrução de índice é determinado pela opção de configuração Grau Máximo de Paralelismo , pela carga de trabalho atual e pelas estatísticas de índice.The number of processors used to run a single index statement is determined by the max degree of parallelism configuration option, the current workload, and the index statistics. A opção grau máximo de paralelismo determina o número máximo de processadores a serem usados na execução no plano paralelo.The max degree of parallelism option determines the maximum number of processors to use in parallel plan execution. Se o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine detectar que o sistema está ocupado, o grau de paralelismo da operação de índice será automaticamente reduzido antes do início da execução da instrução.If the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine detects that the system is busy, the degree of parallelism of the index operation is automatically reduced before statement execution starts. O Mecanismo de Banco de DadosDatabase Engine também poderá diminuir o grau de paralelismo se a coluna de chave à esquerda de um índice não particionado tiver um número limitado de valores distintos ou a frequência de cada valor distinto variar de forma significativa.The Mecanismo de Banco de DadosDatabase Engine can also reduce the degree of parallelism if the leading key column of a non-partitioned index has a limited number of distinct values or the frequency of each distinct value varies significantly.

Observação

As operações de índice paralelas não estão disponíveis em todas as edições do SQL ServerSQL Server .Parallel index operations are not available in every SQL ServerSQL Server edition. Para obter mais informações, consulte Recursos com suporte nas edições do SQL Server 2016For more information, see Features Supported by the Editions of SQL Server 2016

Neste tópicoIn This Topic

Antes de começarBefore You Begin

Limitações e restriçõesLimitations and Restrictions

  • O número de processadores usados pelo otimizador de consulta normalmente fornece melhor desempenho.The number of processors that are used by the query optimizer typically provides optimal performance. Porém, operações como criar, recriar ou cancelar índices muito grandes são recursos intensivos e podem causar recursos insuficientes em outros aplicativos e operações de banco de dados durante a operação de índice.However, operations such as creating, rebuilding, or dropping very large indexes are resource intensive and can cause insufficient resources for other applications and database operations for the duration of the index operation. Quando ocorrer esse problema, você poderá configurar manualmente o número máximo de processadores usados para executar a instrução de índice, limitando o número de processadores para a operação de índice.When this problem occurs, you can manually configure the maximum number of processors that are used to run the index statement by limiting the number of processors to use for the index operation.

  • A opção de índice MAXDOP substitui a opção de configuração max degree of parallelism apenas para consultas que especificam essa opção.The MAXDOP index option overrides the max degree of parallelism configuration option only for the query specifying this option. A tabela a seguir lista os valores inteiros válidos que podem ser especificados com a opção de configuração grau máximo de paralelismo e a opção de índice MAXDOP.The following table lists the valid integer values that can be specified with the max degree of parallelism configuration option and the MAXDOP index option.

    ValorValue DescriçãoDescription
    00 Especifica que o servidor determina o número de CPUs que são usadas, dependendo da carga de trabalho do sistema atual.Specifies that the server determines the number of CPUs that are used, depending on the current system workload. Esse é o valor padrão e a configuração recomendada.This is the default value and recommended setting.
    11 Suprime a geração de plano paralelo.Suppresses parallel plan generation. A operação será executada em série.The operation will be executed serially.
    2-642-64 Limita o número de processadores ao valor especificado.Limits the number of processors to the specified value. Menos processadores podem ser usados dependendo da carga de trabalho atual.Fewer processors may be used depending on the current workload. Se um valor maior que o número de CPUs disponíveis for especificado, o número atual de CPUs disponíveis será usado.If a value larger than the number of available CPUs is specified, the actual number of available CPUs is used.
  • Execução de índice paralelo e a opção de índice MAXDOP se aplicam às seguintes instruções Transact-SQLTransact-SQL :Parallel index execution and the MAXDOP index option apply to the following Transact-SQLTransact-SQL statements:

    • CREATE INDEXCREATE INDEX

    • ALTER INDEX REBUILDALTER INDEX REBUILD

    • DROP INDEX (Isso só se aplica aos índices cluster.)DROP INDEX (This applies to clustered indexes only.)

    • ALTER TABLE ADD (índice) CONSTRAINTALTER TABLE ADD (index) CONSTRAINT

    • ALTER TABLE DROP (índice cluster) CONSTRAINTALTER TABLE DROP (clustered index) CONSTRAINT

  • A opção de índice MAXDOP não pode ser especificada na instrução ALTER INDEX REORGANIZE.The MAXDOP index option cannot be specified in the ALTER INDEX REORGANIZE statement.

  • Requisitos de memória para operações de índice de partição que necessitam de classificação poderão ser maiores se o otimizador de consulta aplicar graus de paralelismo à operação de criação.Memory requirements for partitioned index operations that require sorting can be greater if the query optimizer applies degrees of parallelism to the build operation. Quanto maior os graus de paralelismo, o maior será o requisito de memória.The higher the degrees of parallelism, the greater the memory requirement is. Para obter mais informações, consulte Partitioned Tables and Indexes.For more information, see Partitioned Tables and Indexes.

SegurançaSecurity

PermissõesPermissions

Requer a permissão ALTER na tabela ou exibição.Requires ALTER permission on the table or view.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Para definir o grau máximo de paralelismo de um índiceTo set max degree of parallelism on an index

  1. No Pesquisador de Objetos, clique no sinal de mais para expandir o banco de dados que contém a tabela na qual você deseja definir o grau máximo de paralelismo de um índice.In Object Explorer, click the plus sign to expand the database that contains the table on which you want to set max degree of parallelism for an index.

  2. Expanda a pasta Tabelas .Expand the Tables folder.

  3. Clique no sinal de mais para expandir a tabela na qual você deseja definir o grau máximo de paralelismo de um índice.Click the plus sign to expand the table on which you want to set max degree of parallelism for an index.

  4. Expanda a pasta Índices .Expand the Indexes folder.

  5. Clique com o botão direito do mouse no índice do qual você deseja definir o grau máximo de paralelismo e selecione Propriedades.Right-click the index for which you want to set the max degree of parallelism and select Properties.

  6. Em Selecione uma página, selecione Opções.Under Select a page, select Options.

  7. Selecione Grau máximo de paralelismoe insira um valor entre 1 e 64.Select Maximum degree of parallelism, and then enter some value between 1 and 64.

  8. Clique em OK.Click OK.

Somos todos ouvidos: Se você encontrar algo desatualizado ou incorreto neste artigo, como uma etapa ou um exemplo de código, informe-nos.We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. Você pode clicar no botão Esta página na seção Comentários na parte inferior desta página.You can click the This page button in the Feedback section at the bottom of this page. Lemos todos os itens de comentários sobre o SQL, normalmente no dia seguinte.We read every item of feedback about SQL, typically the next day. Obrigado.Thanks.

Usando o Transact-SQLUsing Transact-SQL

Para definir o grau máximo de paralelismo de um índice existenteTo set max degree of parallelism on an existing index

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de DadosDatabase Engine.In Object Explorer, connect to an instance of Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.On 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.

    USE AdventureWorks2012;   
    GO  
    /*Alters the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table so that, if the server has eight or more processors, the Database Engine will limit the execution of the index operation to eight or fewer processors.  
    */  
    ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor  
    REBUILD WITH (MAXDOP=8);   
    GO  
    

Para obter mais informações, consulte ALTER INDEX (Transact-SQL).For more information, see ALTER INDEX (Transact-SQL).

Defina o grau máximo de paralelismo de um novo índiceSet max degree of parallelism on a new index

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de DadosDatabase Engine.In Object Explorer, connect to an instance of Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.On 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.

    USE AdventureWorks2012;  
    GO  
    CREATE INDEX IX_ProductVendor_NewVendorID   
    ON Purchasing.ProductVendor (BusinessEntityID)  
    WITH (MAXDOP=8);  
    GO  
    

Para obter mais informações, consulte CREATE INDEX (Transact-SQL).For more information, see CREATE INDEX (Transact-SQL).