Use modelos em regras de negócios para evitar a repetição de seções de código e aproveitar melhor as RTPs.
Analise dependências em membros de cálculo dinâmico dentro de cada cálculo. Se possível, altere o cálculo para evitar a inclusão do uso repetido de cálculo dinâmico ou remova o cálculo dinâmico.
Use instruções FIX e IF para focar no cálculo e garantir que somente os dados necessários sejam calculados.
Evite a criação de um resultado com dados 0 (zero), a menos que queira ver um zero; por exemplo, para níveis de inventário. Isso criará um bloco, que será incluído em todas as instruções FIX e IF e será calculado. Se possível, remova zeros do carregamento de dados ou evite a criação de zeros em regras de negócios.
Tente evitar uma lógica booliana dentro da instrução IF usada para verificar se uma condição existe. Por exemplo, substitua
IF (("Budget" ==#missing) OR ("Budget" ==0))
pelo seguinte, o que produz o mesmo resultado, mas evita o uso da lógica booliana:
IF ("Budget" +1==1) or IF (Budget/Budget ==#missing)
Quando possível, execute cálculos densos antes de executar cálculos esparsos. Os cálculos densos não criam blocos; os esparsos criam. Ao executar agregações; por exemplo, para obter um total de um cálculo de alocação, certifique-se de agregar somente a seção dos dados que é obrigatória para esse cálculo de alocação.
Minimize as passagens em um banco de dados.
Evite fórmulas recursivas. A recursão excessiva pode criar problemas de desempenho e exigir que você apague valores para produzir resultados consistentes.
Para ver as melhores práticas de como substituir blocos zero e remover blocos #missing em cubos BSO para reduzir o tamanho do banco de dados, consulte Otimizar Cubos BSO.