Por que minha consulta é executada várias vezes?

Durante a atualização no Power Query, há muito sendo feito nos bastidores para tentar oferecer uma experiência suave ao usuário e executar suas consultas com eficiência e segurança. No entanto, em alguns casos, você pode observar que várias solicitações de fonte de dados estão sendo disparadas pelo Power Query quando os dados são atualizados. Às vezes, essas solicitações são normais, mas outras vezes podem ser evitadas.

Quando várias solicitações ocorrem

As seções a seguir descrevem algumas situações em que o Power Query pode enviar várias solicitações para uma fonte de dados.

Design do conector

Os conectores podem fazer várias chamadas a uma fonte de dados por vários motivos, incluindo metadados, cache de resultados, paginação e assim por diante. Esse comportamento é normal e foi projetado para funcionar dessa forma.

Várias consultas referenciando uma única fonte de dados

Várias solicitações à mesma fonte de dados poderão ocorrer se várias consultas efetuarem pull dessa fonte de dados. Essas solicitações podem acontecer mesmo quando apenas uma consulta faz referência à fonte de dados. Se essa consulta for referenciada por uma ou mais outras consultas, cada consulta, juntamente com todas as consultas das quais ela depende, será avaliada de maneira independente.

Em um ambiente de área de trabalho, uma única atualização de todas as tabelas do modelo de dados é executada usando um único cache compartilhado. O cache pode reduzir a probabilidade de ocorrer várias solicitações para a mesma fonte de dados, pois uma consulta pode se beneficiar da mesma solicitação já ter sido executada e armazenada em cache para outra consulta. Mesmo aqui, porém, você pode receber várias solicitações porque a fonte de dados não está armazenada em cache (por exemplo, arquivos CSV locais), a solicitação para a fonte de dados é diferente de uma solicitação que já foi armazenada em cache devido a operações downstream (que podem alterar a dobragem), o cache é muito pequeno (o que é relativamente improvável) ou porque as consultas estão sendo executadas aproximadamente ao mesmo tempo.

Em um ambiente de nuvem, cada consulta é atualizada usando o próprio cache separado, portanto, uma consulta não pode se beneficiar da mesma solicitação que já foi armazenada em cache para uma consulta diferente.

Dobramento

Às vezes, a camada de dobragem do Power Query pode gerar várias solicitações a uma fonte de dados, com base nas operações que estão sendo executadas downstream. Nesses casos, você pode evitar várias solicitações usando Table.Buffer. Para mais informações: Colocar sua tabela em buffer

Carregando no modelo do Power BI Desktop

No Power BI Desktop, o AS (Analysis Services) atualiza os dados usando duas avaliações: uma para buscar o esquema, o que o AS faz solicitando linhas zero, e outra para buscar os dados. Se a computação do esquema de linha zero exigir a busca dos dados, poderão ocorrer solicitações duplicadas de fonte de dados.

Análise de privacidade de dados

A privacidade de dados faz suas próprias avaliações de cada consulta para determinar se as consultas são seguras para serem executadas juntas. Às vezes, essa avaliação pode causar várias solicitações a uma fonte de dados. Um sinal indicador de que uma determinada solicitação vem da análise de privacidade de dados é que ela terá uma condição "TOP 1000" (embora nem todas as fontes de dados ofereçam suporte a essa condição). Em geral, desabilitar a privacidade de dados, supondo que isso seja aceitável, eliminaria o "TOP 1000" ou outras solicitações relacionadas à privacidade de dados durante a atualização. Para mais informações: Desabilitar o firewall de privacidade de dados

Downloads de dados em segundo plano (também conhecidos como "análise em segundo plano")

Assim como as avaliações executadas para privacidade de dados, o editor do Power Query baixará por padrão uma visualização das primeiras mil linhas de cada etapa da consulta. O download dessas linhas ajuda a garantir que a visualização de dados esteja pronta para ser exibida assim que uma etapa for selecionada, mas também poderá causar solicitações duplicadas à fonte de dados. Para mais informações: Desabilitar a análise em segundo plano

Tarefas diversas em segundo plano do editor do Power Query

Várias tarefas em segundo plano do editor do Power Query também podem disparar solicitações extras à fonte de dados (por exemplo, análise de dobragem de consultas, criação de perfil de coluna, atualização automática da visualização das mil linhas que o Power Query dispara após o carregamento dos resultados no Excel e assim por diante).

Isolando várias consultas

Você pode isolar instâncias de várias consultas desativando partes específicas do processo de consulta para isolar o local do qual vêm as solicitações duplicadas. Por exemplo, se você começar:

  • No editor do Power Query
  • Com o firewall desabilitado
  • Com a análise em segundo plano desabilitada
  • Com a criação de perfil de coluna e outras tarefas em segundo plano desabilitadas
  • [Opcional] Fazendo um Table.Buffer

Neste exemplo, você terá apenas uma única avaliação da M que acontecerá quando você atualizar a visualização do editor do Power Query. Se as solicitações duplicadas ocorrerem neste ponto, elas serão inerentes de alguma forma à maneira como a consulta é criada. Caso contrário, e se você habilitar as configurações acima uma a uma, poderá observar em que ponto as solicitações duplicadas começam a ocorrer.

As seções a seguir descrevem essas etapas mais detalhadamente.

Configurar o editor do Power Query

Você não precisa se reconectar nem recriar a consulta, basta abrir a consulta que deseja testar no editor do Power Query. Você pode duplicar a consulta no editor se não quiser mexer com a consulta existente.

Desabilitar o firewall de privacidade de dados

A próxima etapa é desabilitar o firewall de privacidade de dados. Esta etapa pressupõe que você não esteja preocupado com o vazamento de dados entre fontes, portanto, o firewall de privacidade de dados pode ser desabilitado usando Sempre ignorar configurações de nível de privacidade na opção Definir Combinação Rápida no Excel ou usando a configuração Ignorar os níveis de privacidade e potencialmente melhorar o desempenho descrita em Níveis de privacidade do Power BI Desktop no Power BI Desktop.

Desfaça esta etapa antes de retomar o teste normal.

Desabilitar a análise em segundo plano

A próxima etapa é desabilitar a análise em segundo plano. A análise em segundo plano é controlada pela configuração Permitir que a visualização de dados baixe em segundo plano descrita em Desabilitar atualização em segundo plano do Power Query para o Power BI. Você também pode desabilitar essa opção no Excel.

Imagem mostrando opções de consulta no Excel com a análise em segundo plano desabilitada.

Armazenar a tabela em buffer

Você também pode usar Table.Buffer para forçar a leitura de todos os dados, o que imita o que acontece durante um carregamento. Para usar Table.Buffer no editor do Power Query:

  1. Na barra de fórmulas do editor do Power Query, selecione o botão fx para adicionar uma nova etapa.

    Imagem com a localização do botão fx enfatizada.

  2. Na barra de fórmulas, coloque o nome da etapa anterior em Table.Buffer (<o nome da etapa anterior fica aqui>). Por exemplo, se a etapa anterior tiver sido nomeada como Source, a barra de fórmulas exibirá = Source. Edite a etapa na barra de fórmulas para mostrar = Table.Buffer(Source).

Para mais informações: Table.Buffer

Executar o teste

Para executar o teste, faça uma atualização no editor do Power Query.

Imagem com a localização do botão atualizar enfatizada.