Considerazioni sull'ottimizzazione e sulle performance

  • Utilizzare template nelle regole business per evitare la ripetizione di sezioni di codice e per impiegare in modo ottimale i prompt runtime.
  • Esaminare le dipendenze da membri di calcolo dinamico all'interno dei singoli calcoli. Se possibile, modificare il calcolo per evitare di includere un utilizzo ripetuto del calcolo dinamico oppure rimuovere tale calcolo.
  • Utilizzare istruzioni FIX e IF per focalizzare il calcolo in modo che vengano calcolati solo i dati necessari.
  • Evitare la creazione di un risultato dati pari a 0 (zero), tranne nei casi in cui si intenda visualizzare uno zero, ad esempio per i livelli di scorte. Verrà così creato un blocco, che viene incluso in tutte le istruzioni FIX e IF e viene calcolato. Rimuovere gli zeri in fase di caricamento dati, se possibile, oppure evitare la creazione di zeri nelle regole business.
  • Provare a evitare logica booleana all'interno dell'istruzione IF utilizzata per verificare l'esistenza di una condizione. Ad esempio, sostituire:
    IF (("Budget" ==#missing) OR ("Budget" ==0))
    con l'istruzione seguente, che restituisce lo stesso risultato ma evita l'uso della logica booleana:
    IF ("Budget" +1==1) or IF (Budget/Budget ==#missing)
  • Ove possibile, eseguire calcoli densi prima di eseguire calcoli sparsi. I primi, a differenza dei secondi, non creano blocchi. Durante l'esecuzione di aggregazioni, ad esempio per ottenere il totale per un calcolo di allocazione, assicurarsi di aggregare soltanto la sezione dei dati necessaria per tale calcolo di allocazione.
  • Ridurre al minimo i passaggi in un database.
  • Evitare formule ricorsive. Troppa ricorsività può generare problemi di performance e richiedere la cancellazione di valori per produrre risultati coerenti.
  • Per informazioni sulle procedure consigliate per la sostituzione dei blocchi zero e la rimozione dei blocchi #missing nei cubi BSO per ridurre le dimensioni dei database, fare riferimento alla sezione Ottimizzazione dei cubi BSO.