Por que um artigo de 2021 continua tão atual?

Porque o texto de Nikola Ilic, no Data Mozart, explica um princípio de arquitetura — onde o processamento acontece — e não apenas onde clicar na interface. Telas mudam; o custo de mover dados e executar transformações no lugar errado continua existindo.

A ideia central permanece: quando possível, o Power Query traduz as etapas escritas em M para a linguagem nativa da fonte, como SQL, e pede que a própria fonte faça o trabalho. Isso reduz o volume transferido, a memória usada pelo mecanismo de mashup e, em muitos cenários, o tempo de atualização.

O conteúdo antigo também acerta ao alertar que detalhes aparentemente pequenos — uma função diferente, a ordem das etapas ou a forma de fazer uma junção — podem mudar o plano executado. O que evoluiu foram as ferramentas de diagnóstico, especialmente no Power Query Online.

O que query folding realmente faz

O script M descreve o resultado desejado. Durante a avaliação, o Power Query consulta os recursos e metadados da fonte, identifica quais transformações podem ser delegadas e combina essas operações em uma solicitação nativa. O restante é executado pelo mecanismo do Power Query depois que os dados chegam.

Pense em um filtro sobre uma tabela SQL com cem milhões de linhas. Com folding, o banco aplica o WHERE e devolve apenas o recorte necessário. Sem folding, o Power Query pode precisar receber um conjunto muito maior para filtrá-lo localmente. A diferença não está na aparência do resultado, mas no caminho — e no custo — para produzi-lo.

Diagrama do processo de avaliação com query folding entre o script M, a fonte SQL e o mecanismo de transformação
No folding, parte do script M vira uma consulta de fonte de dados; apenas o que não puder ser delegado fica para o mecanismo de transformação. Imagem: Microsoft Learn.

Completo, parcial ou inexistente

A avaliação não é simplesmente “dobrou” ou “não dobrou”. A documentação atual distingue três resultados, e essa diferença é essencial para diagnosticar sem alarmismo.

  • Folding completo: a fonte processa todas as transformações e o Power Query faz o mínimo localmente.
  • Folding parcial: a fonte executa o trecho traduzível; as transformações restantes ficam no mecanismo do Power Query.
  • Sem folding: a fonte entrega os dados solicitados sem executar as transformações, que passam a ser processadas localmente.

Quando isso muda o resultado do projeto

No modo Importação, folding costuma significar atualizações mais rápidas e menor consumo de memória e CPU no gateway ou na capacidade. Em DirectQuery, as transformações precisam ser traduzíveis para que a solução funcione dentro das limitações do modo. Na atualização incremental, o filtro de partição precisa chegar à fonte; caso contrário, o benefício de buscar apenas a janela necessária pode desaparecer.

Mas folding não explica tudo. Ele atua na obtenção e transformação dos dados. Um visual lento, uma medida DAX cara ou um modelo grande demais exigem outra investigação. Antes de otimizar, separe o tempo de atualização do tempo de renderização do relatório.

Fluxo de avaliação sem otimização mostrando o script M, o mecanismo do Power Query, a fonte SQL e a saída
Sem delegação suficiente, mais dados atravessam a conexão e mais transformações ficam sob responsabilidade do mecanismo local. Imagem: Microsoft Learn.

A ordem das etapas é uma decisão de desempenho

Comece reduzindo o conjunto enquanto a fonte ainda consegue ajudar: filtre linhas cedo, mantenha somente as colunas necessárias e prefira operações reconhecidas pelo conector. Deixe transformações personalizadas, funções linha a linha e outras etapas não dobráveis para depois da maior redução possível.

Isso não significa rearranjar passos às cegas. Algumas fontes e conectores têm capacidades diferentes, e o Power Query aplica avaliação lenta: uma etapa pode nem precisar ser executada se não contribuir para o resultado final. A sequência deve ser validada com os indicadores e o plano da consulta.

Painel Etapas aplicadas do Power Query com cinco transformações
As etapas formam uma cadeia e correspondem aos identificadores do script M; selecione cada uma para investigar até onde o plano é delegado. Imagem: Microsoft Learn.

Como verificar sem adivinhar

No Power Query Online, observe os indicadores ao lado de cada etapa e abra o plano da consulta para separar nós remotos dos que serão avaliados pelo mecanismo local. Quando disponível, use Exibir consulta nativa ou Exibir consulta da fonte de dados para inspecionar a solicitação gerada.

No Power BI Desktop, Exibir Consulta Nativa continua sendo um bom primeiro teste, mas uma opção desabilitada não prova sozinha que nada dobrou. Use Diagnóstico de Consulta e, para SQL Server, ferramentas de rastreamento do banco quando precisar comprovar as solicitações realmente enviadas.

  • Teste etapa por etapa e anote o último ponto confirmado como dobrável.
  • Compare volume lido, duração e uso de recursos antes e depois da mudança.
  • Valide no mesmo conector e ambiente de produção: suporte a folding depende da fonte, do conector e da transformação.
  • Não force folding a qualquer custo; uma transformação pequena depois de uma grande redução pode ser perfeitamente aceitável.

Checklist para uma consulta saudável

Antes de publicar ou investigar uma atualização lenta, percorra esta lista curta. Ela transforma query folding em prática operacional, não em superstição.

  • A fonte possui mecanismo de consulta? SQL Server e OData normalmente oferecem folding; CSV e Excel não.
  • Filtros e seleção de colunas aparecem antes das transformações mais caras?
  • O filtro da atualização incremental é delegado até a fonte?
  • A junção ocorre entre fontes compatíveis e com níveis de privacidade coerentes?
  • O indicador ou plano confirma a execução remota, em vez de apenas a interface sugerir isso?
  • O ganho foi medido na atualização real, incluindo gateway e capacidade?

Fontes e leitura complementar