
Tenho uma série de consultas no Excel que dependem de uma consulta inicial que carrega dados de arquivos CSV, os processa e os carrega em uma tabela na planilha. Todas as consultas restantes usam tabelas de planilhas como fonte e não utilizam fontes de dados externas.
Quando eu os recarrego individualmente, eles parecem demorar mais do que deveriam e parecem estar acessando os próprios arquivos CSV.
Tenho todas as configurações globais e de dados de consulta para otimizar o carregamento (carregamento rápido, desligar o plano de fundo, etc.) com base em algumas pesquisas na Internet e o carregamento/processamento da consulta original é aceitável, dada a quantidade de dados. Parece que, uma vez que eu tenha os dados processados em uma tabela na pasta de trabalho, as consultas dessa tabela e de outras não exigiriam o retorno aos arquivos da fonte de dados.
Só estou me perguntando se estou faltando alguma coisa aqui. Obrigado!
Responder1
Quando uma consulta faz referência a outra consulta como uma Origem (ou em uma etapa Mesclar ou Anexar), toda a lógica da consulta de Origem será executada sempre que a consulta de referência for atualizada. Se você tiver 5 consultas referenciando a mesma consulta de origem, a lógica da consulta de origem será executada 5 vezes, em paralelo (por padrão). É obviamente ineficiente.
Em um cenário do Excel, o padrão para evitar essa ineficiência é definir a consulta Fonte comoCarregar parauma tabela Excel. Em seguida, as consultas de referência podem ser apontadas para essa tabela do Excel como sua fonte.
Isso deixa você com o desafio de coordenar as atualizações, pois pressionar o botão Atualizar tudo corre o risco de resultados inconsistentes. Normalmente eu mitigo isso usando grupos de consulta ou gravando uma macro de atualização.
Responder2
Obrigado Mike. Você parece estar correto, embora a atualização de uma consulta dependente pareça atualizar a consulta pai (conforme confirmado pelas mensagens sobre quais arquivos CSV ela está acessando) um pouco mais rápido do que atualizar a consulta pai diretamente.
Resolvi o problema da maneira que você sugeriu. Em vez de usar o botão "Gerenciar/Referência" na barra de ferramentas do Power Query Editor que gera
Fonte = #"consulta pai"
Eu uso o editor Get Data->Table/Range ou M para obter dados da tabela da consulta pai
Fonte = Excel.CurrentWorkbook(){[Nome="nome da tabela de consulta pai"]}[Conteúdo]
Agora carrega instantaneamente. Como estou na fase de desenvolvimento do meu projeto, gerenciar atualizações não é um problema. Descobrirei um sistema quando terminar.
Obrigado!