Indicadores de dobragem de consultas

Observação

Antes de ler este artigo, recomendamos que você leia a visão geral da avaliação de consulta e do dobramento de consultas no Power Query para entender melhor como funciona a dobra no Power Query.

Os indicadores de dobramento de consulta ajudam você a entender as etapas que dobram ou não dobram.

Com indicadores de dobramento de consulta, torna-se óbvio quando você faz uma alteração que quebra a dobra. Esse recurso ajuda você a resolver problemas com mais facilidade rapidamente, evitar problemas de desempenho em primeiro lugar e ter uma melhor visão de suas consultas. Na maioria dos casos em que você encontrar, as etapas terão dobramento ou não. Mas há muitos casos em que o resultado não é tão óbvio, e esses casos são discutidos em indicadores de diagnóstico de etapa (Dinâmico, Opaco e Desconhecido).

Observação

O recurso indicadores de dobramento de consulta está disponível apenas para o Power Query Online.

Interpretando o diagnóstico de dobramento de consulta

Quando você examina o indicador de dobramento de consulta ao lado de uma etapa, o mais importante a entender é que o estado de diagnóstico não é sequencial. Em outras palavras, o indicador dessa etapa descreve se a consulta como um todo, até esse ponto, dobra ou não. Se você tiver um indicador que mostre que a consulta não é dobrada, seguido por um indicador que mostra que ela é dobrada, isso significa que sua consulta até esse ponto dobra.

Essa interpretação funciona mesmo com uma consulta simples em uma fonte SQL. Por exemplo, usando o banco de dados de exemplo Adventureworks, conecte-se à tabela Production.Product e carregue os dados. Carregar este exemplo pelo navegador Power Query fornece a seguinte consulta:

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
  Navigation

Se você examinar como esse código aparece em indicadores de dobramento de consulta, você observará que a primeira etapa é inconclusiva. Mas a segunda etapa dobra, o que significa que a consulta até esse ponto dobra.

Source and Navigation steps in Folding Indicator pane.

Neste exemplo, as etapas iniciais não podem ser confirmadas para dobrar (é inconclusiva), mas a etapa final gerada quando você carrega os dados inicialmente dobra. A maneira como as primeiras etapas (origem e, às vezes, outras etapas de navegação ) são tratadas depende do conector. Com o SQL, por exemplo, ele é tratado como um valor de tabela de catálogo, que não é dobrado. No entanto, assim que você selecionar dados para esse conector, ele será dobrado.

Por outro lado, isso também pode significar que sua consulta se dobra até um ponto e, em seguida, para de dobrar. Ao contrário do caso em que você tem um indicador de dobramento para a etapa que mostra que tudo se dobra, quando você tem um indicador não dobrável, isso não significa que tudo não se dobra. Em vez disso, significa que "nem tudo" dobra. Geralmente, tudo até o último indicador dobrável será dobrado, com mais operações acontecendo depois.

Modificando o exemplo acima, você pode dar uma transformação que nunca dobra — Capitalize Cada Palavra.

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
  #"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
  #"Capitalized each word"

Nos indicadores de dobramento de consulta, você tem os mesmos indicadores que acima, exceto que a etapa final não é dobrada. Tudo até esta etapa final será executado na fonte de dados, enquanto a etapa final será executada localmente.

Source, Navigation, and Capitalize Each Word steps in Folding Indicator pane.

Indicadores de diagnóstico de etapa

Os indicadores de dobramento de consulta usam um plano de consulta subjacente e exigem que ele seja capaz de obter informações sobre a consulta para reportá-la. Atualmente, o plano de consulta dá suporte apenas a tabelas, portanto, alguns casos (listas, registros, primitivos) não serão relatados como dobráveis ou não. Da mesma forma, tabelas constantes relatam como opacas.

Indicador Ícone Descrição
Dobra Folding indicator for 'will fold'. O indicador de dobramento informa que a consulta até esta etapa será avaliada pela fonte de dados.
Não está dobrando Folding indicator for 'not folding'. O indicador “não está dobrando” informa que parte da consulta até esta etapa será avaliada fora da fonte de dados. Você pode compará-lo com o último indicador de dobramento, se houver um, para ver se você pode reorganizar sua consulta para ser mais performante.
Pode dobrar Folding indicator for 'might fold'. Indicadores de que algo pode dobrar são incomuns. Eles significam que “pode ser” que uma consulta dobre. Eles indicam que a dobra ou não será determinada em runtime, ao extrair resultados da consulta e que o plano de consulta é dinâmico. Esses indicadores provavelmente só aparecerão com conexões ODBC ou OData.
Opaco Folding indicator for 'opaque, inconclusive folding'. Indicadores opacos dizem que o plano de consulta resultante é inconclusivo por algum motivo. Geralmente, ele indica que há uma tabela verdadeira de "constante" ou que essa transformação ou conector não é compatível com os indicadores e a ferramenta de plano de consulta.
Desconhecido Folding indicator for 'no query plan'. Indicadores desconhecidos representam uma ausência de um plano de consulta, seja devido a um erro ou tentativa de executar a avaliação do plano de consulta em algo diferente de uma tabela (como um registro, lista ou primitivo).

Exemplo de análise

Para obter uma análise de exemplo, comece conectando-se à tabela Production.Product em Adventure Works (SQL). A carga inicial, semelhante ao exemplo acima, se parece com a imagem a seguir.

Initial step indicators for loading the Product table.

Adicionar mais etapas que dobram estenderá essa linha verde no lado direito. Essa extensão ocorre porque essa etapa também é dobrada.

Adding a remove column step to the previous query, extending the green folding indicator line.

Adicionar uma etapa sem dobramento exibe um indicador diferente. Por exemplo, maiúsculas de cada palavra nunca têm dobramento. O indicador muda, mostrando que, a partir desta etapa, ele parou de dobrar. Conforme mencionado anteriormente, as etapas anteriores ainda terão dobramento.

Adding a Capitalize Each Word step to break folding.

A adição de mais etapas que dependem do Capitalizar cada etapa continuará a não ser dobrada.

Adding more steps that don't fold.

No entanto, se você remover a coluna à qual aplicou a capitalização para que o plano de consulta otimizado possa ser dobrado mais uma vez, você obterá um resultado como a imagem a seguir. Porém, algo assim é incomum. Esta imagem ilustra como não é apenas a ordem das etapas, mas também as transformações reais que se aplicam.

Showing how removing the problematic column allows things to fold without removing the step.