Valori da calcolare dinamicamente
Il calcolo dinamico di alcuni valori di dati riduce il tempo di calcolo del batch e l'uso del disco, ma può aumentare il tempo di recupero. Utilizzare le linee guida descritte negli argomenti riportati di seguito quando si decide quali membri di Essbase calcolare in modo dinamico.
È possibile contrassegnare qualsiasi membro come Calcolo dinamico ad eccezione dei membri di livello 0 che non dispongono di una formula, di membri di sola etichetta e di membri condivisi.
I membri che si sceglie di calcolare in modo dinamico dipendono dalla struttura del database e dal saldo tra (1) la necessità di ridurre i tempi di calcolo e l'uso del disco e (2) la necessità di un rapido recupero dei dati per gli utenti.
Nel database Sample Basic, la dimensione Anno è Calcolo dinamico.
Figura 21-1 Esempio di struttura di base che mostra i membri del calcolo dinamico

In Smart View, gli utenti possono visualizzare indicazioni visive per distinguere i valori calcolati in modo dinamico.
Quando si sviluppano query che includono valori calcolati in modo dinamico, si consiglia di utilizzare l'opzione Naviga senza dati di Smart View, in modo che Essbase non calcoli e memorizzi in modo dinamico i valori durante la generazione delle query di test.
Membri densi e calcolo dinamico
I candidati validi per i membri di Calcolo dinamico di Essbase in una dimensione densa includono membri di livello superiore e membri di livello 0 con formule semplici.
Si consiglia di apportare le seguenti modifiche ai membri delle dimensioni dense:
-
Contrassegnare i membri di livello superiore delle dimensioni dense come Calcolo dinamico.
-
Provare a contrassegnare i membri di livello 0 di dimensioni dense con formule semplici come Calcolo dinamico e valutare l'aumento del tempo di recupero.
Le formule semplici non richiedono che Essbase esegua un calcolo costoso. Le formule contenenti funzioni finanziarie o operatori cross-dimensionali (->) sono formule complesse.
Membri sparsi e calcolo dinamico
I candidati validi per i membri di Calcolo dinamico di Essbase in una dimensione sparsa includono membri di livello superiore senza molti figli e membri con formule.
Si consiglia di apportare le modifiche riportate di seguito ai membri delle dimensioni sparse.
-
Contrassegnare alcuni membri di livello superiore di dimensioni sparse con sei o meno figli come Calcolo dinamico.
-
Contrassegnare i membri di dimensioni sparse con formule complesse come Calcolo dinamico.
Una formula complessa richiede che Essbase esegua un calcolo costoso. Ad esempio, qualsiasi formula contenente una funzione finanziaria è una formula complessa. Vedere Formule membro Essbase complesse
-
Contrassegnare i membri di livello superiore in una dimensione che si ristruttura frequentemente come Calcolo dinamico.
-
Non contrassegnare i membri di livello superiore con dimensione sparsa con 20 o più discendenti come Calcolo dinamico.
Relazioni padre-figlio e calcolo dinamico
Genitori con un figlio
Se un membro padre dispone di un membro figlio e tale figlio è contrassegnato come Calcolo dinamico, è necessario anche contrassegnare il padre come Calcolo dinamico.
Tuttavia, se un membro padre ha un membro figlio e il padre è un membro Calcolo dinamico, non è necessario contrassegnare il figlio come Calcolo dinamico.
Dipendenze calcolo dinamico in calcolo batch
Se il calcolo di un membro dipende dal calcolo dei membri figlio di Calcolo dinamico, Essbase deve calcolare i membri figlio prima durante il calcolo del database batch per calcolare il padre. Pertanto, il tempo di calcolo regolare non viene ridotto. Questo requisito si applica ai membri di dimensioni sparse e dense.
Ad esempio, nella figura riportata di seguito, Qtr1 è un membro Calcolo dinamico. I suoi figli, Jan, Feb e Mar, non sono dinamici. Il padre, Anno, non è dinamico. Quando Essbase calcola l'anno durante un calcolo batch, è necessario consolidare i valori dei relativi figli, incluso il trimestre 1. Pertanto, il calcolo del trimestre 1 deve richiedere altro tempo, anche se il trimestre 1 è Calcolo dinamico.
Figura 21-2 Dimensione anno con Qtr1 come membro Calcolo dinamico

Script di calcolo e calcolo dinamico
Impossibile eseguire il calcolo di uno script di calcolo di un membro Calcolo dinamico. Se si utilizza uno script di calcolo per calcolare un membro in modo esplicito, non contrassegnarlo come Calcolo dinamico.
Quando Essbase calcola un'istruzione CALC ALL o CALC DIM in uno script di calcolo, ignora il calcolo dei membri di Calcolo dinamico.
Analogamente, se per specificare l'elenco dei membri da calcolare viene utilizzata una funzione di set di membri (ad esempio @CHILDREN o @SIBLINGS), Essbase ignora il calcolo di qualsiasi membro di Calcolo dinamico nell'elenco risultante.
Se si specifica un membro Calcolo dinamico in modo esplicito in uno script di calcolo, lo script di calcolo non riesce.
Ad esempio, il seguente script di calcolo è valido solo se Qtr1 non è un membro Calcolo dinamico:
FIX (East, Colas)
Qtr1;
ENDFIXFormule e membri calcolati dinamicamente
È possibile utilizzare i membri di Calcolo dinamico nelle formule di struttura di Essbase, ma non come destinazioni di formula negli script di calcolo.
È possibile includere un membro calcolato dinamicamente in una formula quando si applica la formula al profilo. Ad esempio, se Qtr1 è un membro di Calcolo dinamico, è possibile inserire la formula seguente in Qtr1 nel profilo del database:
Qtr1 = Jan + Feb;Impossibile impostare un membro calcolato dinamicamente come destinazione di un calcolo formula in uno script di calcolo. Essbase non riserva memoria per un valore calcolato dinamicamente e non può assegnarvi un valore. Ad esempio, se Qtr1 è un membro di Calcolo dinamico, Essbase visualizza un errore di sintassi se si include la formula seguente in uno script di calcolo:
Qtr1 = Jan + Feb;Se Qtr1 è un membro Calcolo dinamico e Anno non lo è, in uno script di calcolo è possibile utilizzare la formula seguente:
Year = Qtr1 + Qtr2;Questa formula è valida perché Essbase non assegna un valore al membro calcolato dinamicamente.
Nota
Quando si fa riferimento a un membro calcolato dinamicamente, sia in una formula di struttura che in uno script di calcolo, Essbase interrompe il calcolo regolare per eseguire il calcolo dinamico, che influisce sulle prestazioni.
Script e membri calcolati dinamicamente
Per evitare il calcolo in eccesso quando sono presenti formule membro Calcolo dinamico dipendenti dal runtime, è possibile aggiungere SET FRMLRTDYNAMIC OFF allo script di calcolo Essbase.
La fase di pre-elaborazione di uno script di calcolo non può determinare se un profilo contiene membri Calcolo dinamico densi. Se uno script contiene formule dipendenti dal runtime, Essbase deve calcolare tutti i membri densi del calcolo dinamico quando lo script viene eseguito. L'uso del comando di calcolo SET FRMLRTDYNAMIC OFF migliora le prestazioni interrompendo il calcolo di questi membri di Calcolo dinamico.