tem alguns fatores que impactam a performance do refaz saldos.
Considere que é uma rotina que vai ler as tabelas sd1, sd2, sd3, sdb e sd8 desce a data de ultimo fechamento de estoque da filial (mv_ulmes) para compor as tabelas sb2, sb8 e sbf. (as duas útimas só se você usar lote e endereçamento).
- Primeiro, é ideal que rode com as procedures instaladas, a performance é muuuuuuito melhor com procedures, veja mais aqui: https://tdn.totvs.com/display/public/PROT/Stored+Procedures
2 Considere a utilização de multi threads -> https://tdn.totvs.com/display/public/PROT/MATA300+-+Processamento+mult-thread+na+rotina+de+Saldo+Atual
3 Segundo, quando menos tempo do ultimo fechamento, menor a quantidade de registros que a rotina vai processar para compor os saldos atuais, então verifique o mv_ulmes e se for mais de 30 dias atrás confira com a área de estoque e custos se não é viável fazer fechamentos pelo menos uma vez ao mês
4 Finalmente, os parâmetros, se você mandar fazer de todos os armazéns para todos os produtos vai demorar mais, se mesmo com as três primeiras sugestões ainda tem uma demora excessiva, considere fazer por armazém ou até por grupos de produtos, as vezes fazendo por grupo de produto+armazém você pega um ou outro produto que estão com muitas movimentações e impactando na performance e programa para rodar esse produtos em separado.