Por que minha consulta é executada várias vezes?

Ao atualizar no Power Query, há muito feito nos bastidores para tentar proporcionar-lhe uma experiência de utilizador suave e executar as suas consultas de forma eficiente e segura. No entanto, em alguns casos, você pode notar que várias solicitações de fonte de dados estão sendo acionadas pelo Power Query quando os dados são atualizados. Por vezes, estes pedidos são normais, mas outras vezes podem ser evitados.

Quando ocorrem vários pedidos

As secções seguintes descrevem alguns casos em que o Power Query pode enviar vários pedidos para uma origem de dados.

Design do conector

Os conectores podem fazer várias chamadas para 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 fazendo referência a uma única fonte de dados

Várias solicitações para a mesma fonte de dados podem ocorrer se várias consultas forem extraídas dessa fonte de dados. Essas solicitações podem acontecer mesmo em um caso em que 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 depende, será avaliada de forma independente.

Em um ambiente de área de trabalho, uma única atualização de todas as tabelas no modelo de dados é executada usando um único cache compartilhado. O cache pode reduzir a probabilidade de várias solicitações para a mesma fonte de dados, uma vez que uma consulta pode se beneficiar da mesma solicitação já ter sido executada e armazenada em cache para uma consulta diferente. Mesmo aqui, porém, você pode obter 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á estava 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 seu próprio cache separado, portanto, uma consulta não pode se beneficiar da mesma solicitação já ter sido armazenada em cache para uma consulta diferente.

Dobrável

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

Carregando para o modelo do Power BI Desktop

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

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. Essa avaliação às vezes pode causar várias solicitações para uma fonte de dados. Um sinal revelador de que uma determinada solicitação está vindo da análise de privacidade de dados é que ela terá uma condição "TOP 1000" (embora nem todas as fontes de dados suportem tal condição). Em geral, desativar 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 obter mais informações: Desativar o firewall de privacidade de dados

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

À semelhança das avaliações realizadas para a privacidade de dados, o editor do Power Query transfere, por predefinição, uma pré-visualização das primeiras 1000 linhas de cada passo de consulta. O download dessas linhas ajuda a garantir que a visualização de dados esteja pronta para exibição assim que uma etapa for selecionada, mas também pode causar solicitações de fonte de dados duplicadas. Para obter mais informações: Desativar 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 pedidos de origem de dados adicionais (por exemplo, análise de dobragem de consultas, criação de perfis de colunas, a atualização automática da pré-visualização de 1000 linhas que o Power Query aciona depois de carregar resultados para o 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 de onde vêm as solicitações duplicadas. Por exemplo, se você iniciar:

Neste exemplo, terá apenas uma única avaliação M que acontece quando atualiza a pré-visualização do editor do Power Query. Se as solicitações duplicadas ocorrerem neste momento, elas serão de alguma forma inerentes à maneira como a consulta é criada. Se não, e se você ativar as configurações acima uma a uma, você pode observar em que ponto as solicitações duplicadas começam a ocorrer.

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

Configurar o editor do Power Query

Não precisa de voltar a ligar ou recriar a sua consulta, basta abrir a consulta que pretende testar no editor do Power Query. Você pode duplicar a consulta no editor se não quiser mexer com a consulta existente.

Desative o firewall de privacidade de dados

O próximo passo é desativar o firewall de privacidade de dados. Esta etapa pressupõe que você não esteja preocupado com o vazamento de dados entre fontes, portanto, a desativação do firewall de privacidade de dados pode ser feita usando as configurações Sempre ignorar Nível de Privacidade descritas 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 nos níveis de privacidade do Power BI Desktop no Power BI Desktop.

Certifique-se de desfazer esta etapa antes de retomar o teste normal.

Desativar a análise em segundo plano

O próximo passo é desativar a análise de fundo. A análise em segundo plano é controlada pela configuração Permitir que a visualização de dados seja baixada na configuração em segundo plano descrita em Desabilitar a atualização em segundo plano do Power Query para o Power BI. Você também pode desativar essa opção no Excel.

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

Colocar a tabela em buffer

Opcionalmente, você também pode usar Table.Buffer para forçar todos os dados a serem lidos, o que imita o que acontece durante uma carga. Para utilizar 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 um novo passo.

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

  2. Na barra de fórmulas, coloque o nome da etapa anterior com Table.Buffer(<o nome da etapa anterior vai aqui>). Por exemplo, se a etapa anterior foi nomeada Source, a barra de fórmulas exibirá = Source. Edite a etapa na barra de fórmulas para dizer = Table.Buffer(Source).

Para obter 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 de atualização enfatizada.