Por que minha consulta é executada várias vezes?
Ao atualizar o 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 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 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 uma ou mais consultas fazem referência a essa consulta, 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. No entanto, mesmo aqui 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 para a fonte de dados é diferente de uma que já foi armazenada em cache devido a operações downstream (que podem alterar o dobramento).
- O cache é muito pequeno (o que é relativamente improvável).
- As consultas estão sendo executadas quase 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.
Dobra
À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 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. 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 baixa por padrão uma visualização das primeiras 1.000 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ê tem 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 descritas anteriormente 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.
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:
Na barra de fórmulas do editor do Power Query, selecione o botão fx para adicionar uma nova etapa.
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 exibe= 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.