Compartilhar via


Por que minha consulta é executada várias vezes?

Quando você atualiza o Power Query, há muito feito nos bastidores para tentar oferecer uma experiência tranquila ao usuário e executar suas consultas de forma eficiente e segura. No entanto, em alguns casos, você pode notar que várias solicitações de fonte de dados são 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 instâncias 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 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 que fazem referência a uma única fonte de dados

Várias solicitações para a mesma fonte de dados podem ocorrer se várias consultas obtiverem dados dessa fonte de dados. Essas solicitações podem ocorrer mesmo em um caso em que apenas uma consulta faz referência à fonte de dados. Se uma ou mais outras consultas fizerem referência a essa consulta, cada consulta, juntamente com todas as consultas das quais ela 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, já que uma consulta pode se beneficiar da mesma solicitação que já foi 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 é armazenada em cache (por exemplo, arquivos CSV locais).
  • A solicitação à fonte de dados é diferente de uma solicitação que já foi armazenada em cache devido a operações a jusante (que podem alterar o dobramento).
  • O cache é muito pequeno (o que é relativamente improvável).
  • As consultas estão sendo executadas mais ou menos 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 que já foi armazenada em cache para uma consulta diferente.

Dobragem

Às vezes, a camada de dobragem do Power Query pode gerar várias solicitações para 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. Mais informações: Configure o buffer da sua tabela

Carregando o modelo no 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 solicitando nenhuma linha, e outra para buscar os dados. Se a computação do esquema de linha zero exigir a busca dos dados, as 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. Às vezes, essa avaliação pode causar várias solicitações a uma fonte de dados. Um sinal de que uma determinada solicitação vem da análise de privacidade de dados é que ela tem 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. 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")

Semelhante às avaliações executadas para privacidade de dados, o editor do Power Query, por padrão, baixa uma visualização das primeiras 1.000 linhas de cada etapa de consulta. Baixar essas linhas ajuda a garantir que a visualização de dados esteja pronta para ser exibida assim que uma etapa for selecionada, mas também pode causar solicitações de fonte de dados duplicadas. Mais informações: Desabilitar a análise em segundo plano

Tarefas em segundo plano do editor do Power Query diversas

Várias tarefas em segundo plano do editor do Power Query também podem disparar solicitações extras de fonte de dados (por exemplo, análise de dobra de consulta, criação de perfil de coluna, a atualização automática da versão prévia de 1000 linhas disparada pelo Power Query após o carregamento de 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 de onde 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 perfilamento de colunas e outras tarefas em segundo plano desabilitadas
  • [Opcional] Fazendo um Table.Buffer

Neste exemplo, você tem apenas uma única avaliação M que ocorre quando você atualiza a visualização de prévia 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 descritas anteriormente um por um, 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 ou recriar sua 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, é possível desabilitar o firewall de privacidade de dados usando as 'Always ignore' configurações de 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.

Desfaça essa 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 visualização de dados para download em segundo plano, conforme descrito em Desabilitar a 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 de plano de fundo desabilitada.

Bufferize sua tabela

Opcionalmente, você também pode usar Table.Buffer para forçar a leitura de todos os dados, o que imita o que acontece durante uma carga. 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 com Table.Buffer(<nome da etapa anterior vem aqui>). Por exemplo, se a etapa anterior tiver sido nomeada Source, a barra de fórmulas = Sourceserá exibida. Edite a etapa na barra de fórmulas para dizer = Table.Buffer(Source).

Mais informações: Table.Buffer

Execute o teste

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

Imagem com o local do botão atualizar enfatizado.