Comentários de DOP (grau de paralelismo)

Aplica-se a: Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL do Azure

O SQL Server 2022 (16.x) introduziu um novo recurso para chamado feedback do DOP (grau de paralelismo) para aprimorar o desempenho da consulta identificando ineficiências de paralelismo para consultas repetidas, com base no tempo decorrido e nas esperas. Os comentários do DOP fazem parte da família de recursos de processamento de consulta inteligente e resolvem o uso não ideal do paralelismo para consultas repetidas. Esse cenário ajuda a otimizar o uso de recursos e aprimorar a escalabilidade das cargas de trabalho, quando o paralelismo excessivo pode causar problemas de desempenho.

Em vez de incorrer nos pontos fracos de um padrão abrangente ou ajustes manuais para cada consulta, o feedback do DOP ajusta automaticamente o DOP para evitar esses problemas.

Para obter outros recursos de feedback de consulta, consulte Feedback da concessão de memória e Feedback da CE (estimativa de cardinalidade).

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

Em vez de incorrer nos pontos fracos de um padrão abrangente ou ajustes manuais para cada consulta, o feedback do DOP ajusta automaticamente o DOP para evitar excesso de paralelismo. Se o uso de paralelismo for considerado ineficiente, o feedback do DOP reduzirá o DOP na próxima execução da consulta, de qualquer que seja o DOP configurado, e verificará se isso ajudou.

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, as consultas centradas em OLTP 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, confira execução em plano paralelo.

  • Para habilitar o feedback do DOP, habilite a configuração no escopo do banco de dados DOP_FEEDBACK em um banco de dados. Por exemplo, no banco de dados de usuário:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = ON;
    
  • Para desabilitar o feedback do DOP no nível do banco de dados, use a configuração no escopo do banco de dados DOP_FEEDBACK. Por exemplo, no banco de dados de usuário:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Para desabilitar os comentários do DOP no nível da consulta, use a dica de consulta DISABLE_DOP_FEEDBACK.

O Repositório de Consultas precisa ser habilitado para cada banco de dados em que os comentários do DOP são usados e no estado "Gravação de leitura". O feedback será persistente na exibição de catálogo sys.query_store_plan_feedback quando atingirmos um grau estável de valor de feedback de paralelismo.

O feedback do DOP está disponível para consultas que operam no nível de compatibilidade do banco de dados de 160, introduzido com o SQL Server 2022 (16.x) ou superior.

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

Um feedback estável é verificado novamente 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, o feedback do DOP também tem reconhecimento de réplicas para réplicas secundárias em grupos de disponibilidade. O feedback do DOP pode aplicar feedback em uma réplica primária e em uma réplica secundária de formas diferentes. Porém, o feedback do DOP não é persistido em réplicas secundárias e, no failover, o feedback do DOP da réplica primária antiga não é aplicado à nova réplica primária. No failover, perde-se o feedback aplicado às réplicas primárias ou secundárias. Para obter mais informações, consulte Repositório de Consultas para réplicas secundárias.

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

O feedback do DOP (grau de paralelismo) identifica paralelismos ineficientes para consultas repetidas, com base no tempo decorrido e esperas. Se o uso de paralelismo for considerado ineficiente, o feedback do DOP reduzirá o DOP na próxima execução da consulta, de qualquer que seja o DOP configurado, e verificará se isso ajudou.

Para avaliar a elegibilidade da consulta, o tempo decorrido da consulta ajustado é medido em algumas execuções. O tempo decorrido total para cada consulta é ajustado ignorando as esperas de E/S do Buffer, Trava do Buffer e de E/S de Rede externas à execução de consulta paralela. A meta do recurso de feedback do DOP é aumentar a simultaneidade geral e reduzir significativamente as esperas, mesmo que isso aumente ligeiramente o tempo decorrido da consulta.

Somente os comentários verificados são persistentes. Se o DOP ajustado resultar em uma regressão de desempenho, os comentários do DOP voltarão para o último DOP conhecido. Nesse contexto, uma consulta cancelada pelo usuário também é percebida como uma regressão.

Observação

O feedback do DOP não recompila planos.

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

O DOP mínimo para qualquer consulta ajustada com feedback do DOP é 2. As execuções em série estão fora do escopo do feedback do DOP.

As informações de feedback podem ser acompanhadas usando a exibição de catálogo sys.query_store_plan_feedback.

Se uma consulta tiver um plano de consulta forçado por meio de Repositório de Consultas, os comentários do DOP ainda podem ser usados para essa consulta.

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

Eventos estendidos para feedback do DOP (grau de paralelismo)

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

  • dop_feedback_eligible_query: ocorre quando o plano de consulta se torna qualificado para comentários do DOP. Eventos adicionais poderão ser acionados se ocorrer uma recompilação ou uma reinicialização da instância do SQL Server.
  • dop_feedback_provided: ocorre quando um comentário do DOP forneceu dados para uma determinada consulta. Esse evento contém estatísticas de linha de base quando os comentários são fornecidos pela primeira vez e estatísticas de comentários anteriores quando comentários subsequentes são fornecidos.
  • dop_feedback_validation: ocorre quando a validação acontece para as estatísticas de runtime de consulta em relação a uma linha de base ou as estatísticas de comentários anteriores.
  • dop_feedback_stabilized: ocorre quando os comentários do DOP são estabilizados para uma consulta.
  • dop_feedback_reverted: ocorre quando um comentário do DOP é revertido. O evento será acionado quando a validação de feedback falhar nos primeiros feedbacks fornecidos. O sistema será revertido para nenhum estado de comentários.
  • dop_feedback_analysis_stopped : ocorre quando a análise de comentários do DOP é interrompida para uma consulta.

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

Aplica-se a: Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL do Azure

Se o mecanismo de feedback do DOP descobrir que o novo grau de paralelismo é bom, essa otimização será mantida 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), estando disponível para consultas que operam no nível de compatibilidade do banco de dados 160 ou superior, ou na dica QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n de 160 e superior, quando o Repositório de Consultas está habilitado para o banco de dados e está no estado de “leitura/gravação”.