Como corrigir lentidão em aplicativos Power Apps

Aplicativos do Power Apps que consomem dados do SharePoint podem ficar lentos à medida que a lista cresce.
Carregamentos demorados, formulários que “travam” e telas que demoram para renderizar são sintomas comuns — e muitas vezes o problema não está no Power Apps em si, mas na forma como ele acessa os dados.
Neste artigo, você vai aprender técnicas práticas para melhorar a performance do seu aplicativo, mesmo com listas grandes.
1. Entenda o que causa lentidão
Antes de aplicar correções, é importante identificar os principais gargalos de desempenho:
Causa | Sintoma | Exemplo |
Falta de delegação | Apenas 500–2.000 registros são retornados; app precisa “baixar” tudo para filtrar localmente | Filtro usando Or, CountIf, StartsWith sem suporte delegável |
Consultas repetidas | A mesma lista é carregada várias vezes (em cada tela) | Filter(SharePointList, …) em múltiplos controles |
Imagens e anexos grandes | App demora a carregar miniaturas | Campos Attachment ou Image com arquivos pesados |
Fórmulas complexas no OnStart | App inicializa com múltiplos ClearCollect() e LookUp() | Espera longa no carregamento |
Falta de cache local | Dados são buscados a cada navegação | Nenhum uso de variáveis ou coleções |
2. Use coleções e variáveis para cache local
Ao abrir o app, armazene os dados que serão usados com frequência:
ClearCollect(colProtocolos, ‘Gestão de Laudos – Protocolos’);
ClearCollect(colAmostras, ‘Gestão de Laudos – Amostras’);
Dica:
- Use Concurrent() para carregar várias listas ao mesmo tempo:
Concurrent(
ClearCollect(colProtocolos, ‘Gestão de Laudos – Protocolos’),
ClearCollect(colAmostras, ‘Gestão de Laudos – Amostras’)
)
- Prefira UpdateContext ou Set para valores únicos (como usuário logado, status atual etc.).

3. Filtre sempre no servidor (delegação)
Evite fórmulas que forcem o app a processar dados localmente.
O segredo é manter o filtro “delegável”, ou seja, executado pelo SharePoint.
Correto:
Filter(‘Gestão de Laudos – Amostras’, ‘TD/Protocol ID’ = varProtocolID)
❌ Evite:
Filter(‘Gestão de Laudos – Amostras’, Text(‘TD/Protocol ID’) = Text(varProtocolID))
ou
Filter(‘Gestão de Laudos – Amostras’, StartsWith(Title, varBusca))
Use Search() apenas para pequenas coleções locais.
Confira a lista de funções delegáveis:
Delegation overview – Microsoft Learn

4. Carregue dados sob demanda
Em vez de carregar todas as listas no OnStart, traga apenas o necessário:
- Carregue listas grandes somente quando a tela for acessada (OnVisible).
- Use paginação:
- ClearCollect(colNext, FirstN(Skip(‘MinhaLista’, varOffset), 100))
- Mostre um “spinner” (ícone de carregamento) com If(IsEmpty(colNext), true).

5. Simplifique o OnStart
O OnStart deve conter apenas o essencial para o primeiro carregamento.
Demais dados podem ser carregados sob demanda (lazy loading).
Exemplo otimizado:
Concurrent(
Set(varUser, User()),
ClearCollect(colMenu, {Title:”Home”}, {Title:”Protocolos”})
)
Evite Navigate() ou SubmitForm() dentro do OnStart.

Conclusão
A lentidão no Power Apps não é inevitável — é um sinal de que seu app pode ser otimizado.
Seguindo as boas práticas de delegação, cache local, carregamento sob demanda e design leve, você pode reduzir drasticamente o tempo de resposta sem mudar a experiência do usuário.
Luiz Antonio Sgargeta é sócio fundador e CEO da Trinapse, consultoria brasileira de Microsoft 365 com quase duas décadas de operação, acumula mais de 20 anos em desenvolvimento de software e em ambientes corporativos de alta complexidade.
Ver maisVer menos
Trabalha com SharePoint desde o SharePoint Portal Server 2003 e com .NET desde a versão 1.0. Acompanhou a plataforma em todas as suas reinvenções, do portal de documentos on-premises ao SharePoint Online dentro do Microsoft 365, o que dá a ele uma leitura rara sobre o que muda de verdade e o que é apenas nome novo para o mesmo problema.
No início da carreira atuou em uma das maiores operações de e-commerce do país, em sistemas que não toleram degradação de performance nem indisponibilidade, essa origem definiu o critério que ele aplica até hoje: solução boa é a que sustenta volume real, integra com o legado que já existe e não quebra no pico.
Depois disso, passou por praticamente todo tipo de projeto corporativo, de portais e intranets de milhares de usuários a integrações críticas e automação de processos de ponta a ponta, sempre em grandes empresas e em desafios de alta exigência.
A marca do trabalho dele é a tradução entre tecnologia e negócio, levanta a necessidade real por trás do pedido do cliente, questiona o processo antes de automatizá-lo e desenha a solução pelo resultado esperado, não pela ferramenta disponível, é o que permite conversar com a diretoria sobre retorno e com o time técnico sobre arquitetura na mesma reunião.
Hoje lidera a frente comercial e estratégica da Trinapse e conduz a empresa no novo ciclo da inteligência artificial, com foco em agentes de IA e operação de processos assistida por IA para cooperativas de crédito, agronegócio e indústria. Escreve no blog da Trinapse desde 2019, com mais de 450 artigos sobre IA, SharePoint, Power Platform, Modern Workplace e transformação de processos, sempre a partir de projeto entregue e não de teoria.



