Configurar operações de índice paralelo

Este tópico define o grau máximo de paralelismo e explica como modificar essa configuração no SQL Server 2012 usando o SQL Server Management Studio ou o Transact-SQL. Em computadores multiprocessadores em execução no SQL 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. O número de processadores usados para executar uma única instrução de índice é determinado pela opção de configuração max degree of parallelism, a carga de trabalho atual e a estatística de índice. A opção max degree of parallelism determina o número máximo de processadores a serem usados na execução de plano paralelo. Se o Mecanismo de Banco de Dados do SQL Server detectar que o sistema está ocupado, o grau de paralelismo da operação de índice será reduzido automaticamente antes do início da execução da instrução. O Mecanismo de Banco de Dados também poderá reduzir o grau de paralelismo se a coluna de chave principal de um índice não particionado tiver um número limitado de valores distintos ou a frequência de cada valor distinto variar significativamente.

ObservaçãoObservação

As operações de índice paralelas não estão disponíveis em todas as edições do SQL Server. Para obter mais informações, consulte Recursos compatíveis com as edições do SQL Server 2012.

Neste tópico

  • Antes de começar:

    Limitações e restrições

    Segurança

  • Para definir a opção max degree of paralelismo, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de começar

Limitações e restrições

  • O número de processadores usados pelo otimizador de consulta normalmente fornece melhor desempenho. 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. 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.

  • 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. A tabela a seguir lista os valores inteiros válidos que podem ser especificados com a opção de configuração max degree of parallelism e a opção de índice MAXDOP.

    Valor

    Descrição

    0

    Especifica que o servidor determina o número de CPUs que são usadas, dependendo da carga de trabalho do sistema atual. Esse é o valor padrão e a configuração recomendada.

    1

    Suprime geração de plano paralelo. A operação será executada em série.

    2-64

    Limita o número de processadores ao valor especificado. Menos processadores podem ser usados dependendo da carga de trabalho atual. Se um valor maior que o número de CPUs disponíveis for especificado, o número atual de CPUs disponíveis será usado.

  • Execução de índice paralelo e a opção de índice MAXDOP se aplicam às seguintes instruções Transact-SQL:

    • CREATE INDEX

    • ALTER INDEX REBUILD

    • DROP INDEX (Isso só se aplica aos índices cluster.)

    • ALTER TABLE ADD (índice) CONSTRAINT

    • ALTER TABLE DROP (índice cluster) CONSTRAINT

  • A opção de índice MAXDOP não pode ser especificada na instrução ALTER INDEX REORGANIZE.

  • 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. Quanto maior os graus de paralelismo, o maior será o requisito de memória. Para obter mais informações, consulte Tabelas e índices particionados.

Segurança

Permissões

Requer a permissão ALTER na tabela ou exibição.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando o SQL Server Management Studio

Para definir o grau máximo de paralelismo de um índice

  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.

  2. Expanda a pasta Tabelas.

  3. Clique no sinal de mais para expandir a tabela na qual você deseja definir o grau máximo de paralelismo de um índice.

  4. Expanda a pasta Índices.

  5. Clique com o botão direito do mouse no índice para o qual você deseja definir o grau máximo de paralelismo e selecione Propriedades.

  6. Em Selecione uma página, selecione Opções.

  7. Selecione Grau máximo de paralelismo e insira um valor entre 1 e 64.

  8. Clique em OK.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando Transact-SQL

Para definir o grau máximo de paralelismo de um índice existente

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

    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).

Defina o grau máximo de paralelismo de um novo índice

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.

    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).

Ícone de seta usado com o link Voltar ao Início[Top]