Partilhar via


Feedback sobre o grau de paralelismo (DOP)

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores Azure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

O feedback do grau de paralelismo (DOP) melhora o desempenho da consulta, identificando ineficiências de paralelismo para consultas repetidas, com base no tempo decorrido e nas esperas.

O feedback DOP faz parte da família de recursos de processamento inteligente de consultas e aborda o uso não ideal do paralelismo para repetir consultas. Esse cenário ajuda a otimizar o uso de recursos e melhorar a escalabilidade das cargas de trabalho, quando o paralelismo excessivo pode causar problemas de desempenho.

Em vez de incorrer nas dores de um padrão abrangente ou ajustes manuais para cada consulta, o feedback DOP autoajusta o DOP para evitar esses problemas.

Os comentários do DOP estão disponíveis para consultas que operam no nível de compatibilidade de banco de dados 160 (introduzido com o SQL Server 2022 (16.x)) ou versões superiores, no Banco de Dados SQL do Azure, na Instância Gerenciada SQL do Azure (com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date) e no banco de dados SQL no Fabric.

Para outros recursos de feedback de consulta, consulte Comentários de concessão de memória e Comentários de estimativa de cardinalidade (CE).

O feedback do grau de paralelismo (DOP) evita o excesso de paralelismo

Em vez de incorrer nas dores de um padrão abrangente ou ajustes manuais para cada consulta, o feedback DOP autoajusta o DOP para evitar paralelismo excessivo. Se o uso de paralelismo for considerado ineficiente, o feedback do DOP reduzirá o DOP para a próxima execução da consulta, independentemente do DOP configurado, para verificar se isso ajuda.

O paralelismo geralmente é benéfico para relatórios e consultas analíticas, ou consultas que, de outra forma, lidam com grandes quantidades de dados. Por outro lado, consultas centradas em OLTP que são executadas em paralelo podem enfrentar problemas de desempenho quando o tempo gasto coordenando todos os threads supera as vantagens de usar um plano paralelo. Para obter mais informações, consulte Execução de plano paralelo.

  • Para habilitar o feedback de DOP, ative a configuração do escopo do banco de dados. Por exemplo, no banco de dados de usuários:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = ON;
    
  • Para desabilitar os comentários do DOP no nível do banco de dados, use a DOP_FEEDBACK banco de dados. Por exemplo, no banco de dados de usuários:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Para desativar o feedback do DOP no nível da consulta, use a dica de consulta DISABLE_DOP_FEEDBACK.

O Query Store deve ser habilitado para cada base de dados onde é usado o DOP feedback, e no estado "Leitura e escrita". O feedback será mantido na vista de catálogo sys.query_store_plan_feedback quando alcançarmos um valor de feedback estável de grau de paralelismo.

Apenas os comentários verificados são mantidos. Se o DOP ajustado resultar em um retrocesso de desempenho, o feedback do DOP voltará para o último DOP válido. Nesse contexto, uma consulta cancelada pelo usuário também é percebida como uma regressão. O feedback do DOP não recompila planos.

O feedback estável é reverificado após a recompilação do plano e pode ser reajustado para cima ou para baixo, mas nunca acima da configuração MAXDOP (incluindo uma dica MAXDOP).

A partir do SQL Server 2022 (16.x), quando o Repositório de Consultas para réplicas secundárias está habilitado, os comentários do DOP também reconhecem réplicas secundárias em grupos de disponibilidade. O feedback do DOP pode aplicar o feedback de forma diferente em uma réplica primária e em uma réplica secundária. No entanto, o feedback DOP não é persistente em réplicas secundárias e, no failover, o feedback DOP da réplica primária antiga não é aplicado à nova réplica primária. Durante o failover, o feedback aplicado às réplicas primárias ou secundárias é perdido. A Loja de Consultas está disponível em réplicas do grupo de disponibilidade secundária a partir do SQL Server 2025 (17.x). Para obter mais informações, consulte Query Store para réplicas secundárias.

Implementação de feedback do grau de paralelismo (DOP)

O feedback do grau de paralelismo (DOP) identifica ineficiências de paralelismo para repetir consultas, com base no tempo decorrido e nas esperas. Se o uso de paralelismo for considerado ineficiente, o feedback do DOP reduzirá o DOP para a próxima execução da consulta, seja qual for o DOP configurado, e verificará se isso ajuda.

Para avaliar a elegibilidade da interrogação, mede-se o tempo ajustado decorrido da interrogação ao longo de várias execuções. O tempo total decorrido para cada consulta é ajustado ignorando as esperas de Buffer Latch, Buffer IO e Network IO que são externas à execução da consulta paralela. O objetivo do recurso de feedback DOP é aumentar a simultaneidade geral e reduzir significativamente as esperas, mesmo que aumente ligeiramente o tempo de consulta decorrido.

Apenas os comentários verificados são mantidos. Se o DOP ajustado resultar em um retrocesso de desempenho, o feedback do DOP voltará para o último DOP válido. Nesse contexto, uma consulta cancelada pelo usuário também é percebida como uma regressão.

Note

O feedback do DOP não recompila os planos.

Considerações sobre o feedback do grau de paralelismo (DOP)

Os comentários do DOP não estão habilitados por padrão no SQL Server 2022 (16.x).

O DOP mínimo para qualquer consulta ajustada usando feedback de DOP é 2. Execuções seriais estão fora do escopo de feedback do DOP.

As informações de feedback podem ser rastreadas usando a vista de catálogo sys.query_store_plan_feedback.

Se uma consulta tiver um plano de consulta forçado através do Query Store, o DOP feedback ainda poderá ser usado para essa consulta.

Atualmente, o feedback do DOP não é compatível com dicas de consulta. Para obter mais informações, consulte Dicas (Transact-SQL) - Consulta e Dicas do Repositório de Consultas.

Eventos estendidos para feedback do grau de paralelismo (DOP)

Os seguintes XEs estão disponíveis para feedback de grau de paralelismo (DOP):

  • dop_feedback_eligible_query: Ocorre quando o plano de consulta se torna elegível para comentários DOP. Eventos adicionais podem ser acionados se ocorrer uma recompilação ou uma reinicialização da instância do SQL Server.
  • dop_feedback_provided: Ocorre quando um feedback DOP fornece dados para uma determinada consulta. Este evento contém estatísticas básicas quando o feedback é fornecido pela primeira vez e estatísticas de feedback anteriores quando o feedback subsequente é fornecido.
  • dop_feedback_validation: Ocorre quando ocorre a validação das estatísticas de tempo de execução da consulta em relação a uma linha de base ou estatísticas de feedback anteriores.
  • dop_feedback_stabilized: Ocorre quando o feedback DOP é estabilizado para uma consulta.
  • dop_feedback_reverted: Ocorre quando um feedback DOP é revertido. O evento é acionado quando a validação do feedback falha no primeiro feedback fornecido. O sistema retornará para o estado sem feedback.
  • dop_feedback_analysis_stopped : Ocorre quando a análise de feedback DOP é interrompida para uma consulta.
  • dop_feedback_reassessment_failed : Ocorre quando o feedback DOP reavalia uma escolha de feedback persistida anteriormente, mas descobriu que o valor persistente não é mais válido. Esse estado reinicia o loop de feedback.

Persistência para feedback do grau de paralelismo (DOP)

Se o mecanismo de feedback DOP achar que o novo grau de paralelismo é bom, essa otimização persistirá dentro do Repositório de Consultas e será aplicada adequadamente a uma consulta para execuções futuras.

Esse recurso foi introduzido no SQL Server 2022 (16.x) e está disponível para consultas que operam no nível de compatibilidade de banco de dados 160 ou superior, ou na dica de 160 e superior, e quando o QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n Repositório de Consultas está habilitado para o banco de dados e está em um estado de "leitura de gravação".