Por que minha consulta é executada várias vezes?
Quando atualiza no Power Query, há muito a fazer 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 são 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 uma ou mais outras consultas fizerem referência a essa consulta, 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 é 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).
- As consultas são 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
Por vezes, a camada dobrável do Power Query pode gerar vários pedidos para uma origem de dados, com base nas operações que estão a ser executadas a jusante. Nesses casos, você pode evitar várias solicitações usando Table.Buffer
o . 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 tem 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 1.000 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:
- No editor do Power Query
- Com o firewall desativado
- Com a análise de fundo desativada
- Com a criação de perfil de coluna e quaisquer outras tarefas em segundo plano desativadas
- [Opcional] Fazer um
Table.Buffer
Neste exemplo, você tem apenas uma única avaliação M que acontece quando você atualiza a 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. Caso contrário, e se você habilitar as configurações descritas anteriormente uma a uma, poderá observar em que momento 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.
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:
Na barra de fórmulas do editor do Power Query, selecione o botão fx para adicionar um novo passo.
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.