Calcolo a due passaggi
Il calcolo a due passaggi può essere applicabile per le formule membro che devono essere calcolate due volte per produrre il valore corretto. È possibile contrassegnare un membro della dimensione account come due passaggi per migliorare le prestazioni di alcune applicazioni Essbase di memorizzazione a blocchi.
Nota
Non utilizzare il calcolo a due passaggi con i cubi in modalità ibrida. Utilizzare solo risolvi ordine.
Per alcune applicazioni, è possibile migliorare le prestazioni contrassegnando un membro della dimensione account come due passaggi nel profilo. Tuttavia, la combinazione di dati e esigenze di calcolo può richiedere l'uso di uno script di calcolo per calcolare una formula due volte, invece di tagging a due passaggi, per preservare la precisione.
Quando possibile, Essbase calcola le formule a due passaggi a livello di blocco, contemporaneamente al calcolo principale. In alcune situazioni, tuttavia, è necessario un passaggio di calcolo aggiuntivo.
Il modo in cui Essbase deve calcolare le formule a due passaggi dipende dalla configurazione densa-sparsa delle dimensioni tempo e conti.
Esempio di calcolo a due passi
Considerare questo calcolo richiesto per la percentuale di profitto:
Profit % = Profit % SalesSi supponga che la tabella seguente mostri un subset di un blocco dati con misure e anno come dimensioni dense. Le misure sono contrassegnate come conti e Anno è contrassegnato come tempo. L'impostazione di configurazione AGGMISSG è disattivata (impostazione predefinita).
I valori dei dati sono stati caricati nelle celle di input. Essbase calcola le celle in cui vengono visualizzati i numeri da 1 a 7 in tale ordine. Ad esempio, la percentuale di profitto -> Gen viene calcolata per prima; la percentuale di profitto -> Qtr1 ha più percorsi di consolidamento.
Tabella 34-5 Esempio di calcolo a due passaggi: dati e ordine di calcolo
| Misure -> Anno | Gen | Feb | Mar | Qtr1 |
|---|---|---|---|---|
|
Profitto |
75 |
50 |
120 |
5 |
|
Vendite |
150 |
200 |
240 |
6 |
|
% profitto |
1 |
2 |
3 |
4, 7 |
Nota
Per informazioni su come l'ordine di calcolo delle celle dipende dalla configurazione del cubo, vedere Ordine di calcolo delle celle.
Essbase utilizza questo ordine di calcolo:
-
Essbase calcola la formula
Profit % Salesper % profitto -> Gen, % profitto -> Feb, % profitto -> Mar e % profitto -> Qtr1 (1, 2, 3, 4 sopra). -
Essbase calcola Profitto -> Trimestre1 e Vendite -> Trimestre1 aggiungendo i valori per Gen, Feb e Mar (5, 6 sopra).
-
Essbase calcola % profitto -> Qtr1 aggiungendo i valori per % profitto -> Gen, % profitto -> Feb e % profitto -> Mar (7 sopra). Questa aggiunta di percentuali produce il valore del 125%, che non è il risultato corretto.
Tabella 34-6 Esempio di calcolo a due passaggi: risultati errati
Misure/anno Gen Feb Mar Qtr1 Profitto 75 50 120 245 (5) Vendite 150 200 240 590 (6) % profitto
50% (1)
25% (2)
50% (3)
0% (4)
125% (7)
-
Se si contrassegna la percentuale di profitto come due passaggi nel profilo, Essbase utilizza la formula
Profit % Salesper ricalcolare i valori della percentuale di profitto e produrre i risultati corretti.Tabella 34-7 Esempio di calcolo a due passaggi: Correggi risultati
Misure/anno Gen Feb Mar Qtr1 Profitto 75 50 120 245 (5) Vendite 150 200 240 590 (6) % profitto
50% (1)
25% (2)
50% (3)
0% (4)
125% (7)
42% (8)
Per informazioni su più passaggi di calcolo, vedere Passi di calcolo.
Interazione di due passaggi e calcolo intelligente
Se si utilizza Calcolo intelligente e il calcolo a due passaggi in un'applicazione di memorizzazione a blocchi, utilizzare lo scenario corrispondente alla configurazione del cubo per assicurarsi che Essbase calcoli in modo accurato le formule a due passaggi.
Nota
Non utilizzare il calcolo a due passaggi con i cubi in modalità ibrida. Utilizzare solo risolvi ordine.
Scenario A: tag a due passaggi
In questo scenario, le formule vengono inserite nel profilo e, se necessario, contrassegnate come due passaggi formule specifiche per ottenere le migliori prestazioni.
Nessun passaggio di calcolo supplementare per le formule a due passaggi
Poiché Essbase calcola le formule a due passaggi durante il calcolo del blocco dati, Essbase non deve eseguire un passaggio di calcolo aggiuntivo.
Tutti i blocchi dati contrassegnati come puliti
Dopo il calcolo, tutti i blocchi di dati vengono contrassegnati come puliti ai fini del calcolo intelligente.
Quando si contrassegna una formula membro come due passaggi nel profilo, Essbase esegue il calcolo a due passaggi durante il calcolo di ogni blocco dati. Tuttavia, quando si ripete una formula in uno script di calcolo, Essbase deve leggere i blocchi di dati e scriverli in memoria per ricalcolare la formula.
Scenario B: script di calcolo
In questo scenario, si crea uno script di calcolo per eseguire il calcolo della formula per ottenere le migliori prestazioni.
Superamento calcolo supplementare per formule a due passaggi
Essbase calcola il cubo e quindi esegue un passaggio di calcolo aggiuntivo per calcolare le formule a due passaggi. Anche se tutti i blocchi di dati sono contrassegnati come puliti dopo il primo calcolo, Essbase ignora lo stato di pulizia dei blocchi rilevanti per la formula a due passaggi e ricalcola tali blocchi.
Blocchi dati per formule a due passaggi non contrassegnati come puliti
Dopo il primo calcolo, Essbase ha contrassegnato tutti i blocchi di dati come puliti. In un secondo passaggio di calcolo, Essbase ricalcola i blocchi di dati necessari per le formule a due passaggi. Tuttavia, poiché il secondo calcolo è parziale, Essbase non contrassegna i blocchi ricalcolati come puliti. Quando si esegue il ricalcolo con l'opzione Calcolo intelligente attivata, è possibile che questi blocchi di dati vengano ricalcolati inutilmente.
Se la configurazione del cubo consente a Essbase di utilizzare lo scenario B, considerare la possibilità di utilizzare uno script di calcolo per eseguire calcoli di formule a due passaggi. Se si utilizza uno script di calcolo, Essbase esegue comunque un ulteriore passaggio di calcolo nel database; tuttavia, è possibile assicurarsi che Essbase abbia contrassegnato tutti i blocchi di dati come puliti dopo il calcolo. Vedere Script di calcolo per il calcolo bidirezionale e intelligente.
Scelta del tag di calcolo a due passaggi o del metodo dello script di calcolo
Sebbene l'applicazione di tag a un membro account come a due passaggi possa apportare vantaggi in termini di prestazioni, alcune applicazioni non possono utilizzare questo metodo. Controllare queste qualifiche per verificare se è necessario applicare un tag a due passaggi o creare uno script di calcolo che esegua due volte un calcolo per ottenere prestazioni e precisione migliori:
-
È possibile contrassegnare un membro come a due passaggi se si trova in una dimensione contrassegnata come account. Quando si esegue un calcolo predefinito nel database, Essbase ricalcola automaticamente tutte le formule contrassegnate come a due passaggi se si trovano nella dimensione contrassegnata come conti.
-
È possibile contrassegnare un membro come a due passaggi se si tratta di un membro Calcolo dinamico di qualsiasi dimensione.
-
Potrebbe essere necessario utilizzare uno script di calcolo per calcolare una formula a due passaggi per ottenere risultati accurati, anche se il tag a due passaggi fornirebbe vantaggi in termini di prestazioni. Vedere Script di calcolo per il calcolo bidirezionale e intelligente.
-
È necessario utilizzare uno script di calcolo per calcolare due volte una formula se la configurazione del database indica che Essbase utilizza lo scenario A e se la formula fa riferimento ai valori di un altro blocco dati.
-
È possibile utilizzare uno script di calcolo per calcolare le formule a due passaggi se la configurazione del database indica che Essbase utilizza lo scenario B.
Due passaggi nei calcoli predefiniti
È disponibile un'impostazione cubo per abilitare due passaggi per i calcoli predefiniti. Quando si esegue un calcolo predefinito su un cubo con due passaggi abilitati, Essbase tenta automaticamente di calcolare le formule contrassegnate come due passaggi nella dimensione contrassegnata come conti.
Nota
Non utilizzare il calcolo a due passaggi con i cubi in modalità ibrida. Utilizzare solo risolvi ordine.
Fare riferimento agli argomenti seguenti:
Per eseguire un calcolo predefinito, è possibile utilizzare l'istruzione Esegui calcolo MaxL.
Per abilitare il calcolo a due passaggi, è possibile utilizzare l'istruzione MaxL alter database.
Script di calcolo per il calcolo bidirezionale e intelligente
Quando si progettano script di calcolo Essbase per eseguire calcoli a due passaggi con Calcolo intelligente, imparare a utilizzare SET UPDATECALC, SET CLEARUPDATESTATUS e CALC TWOPASS per ottimizzare i calcoli.
Nota
Non utilizzare il calcolo a due passaggi con i cubi in modalità ibrida. Utilizzare solo risolvi ordine.
Se il tuo profilo utilizza formule a due passaggi, segui queste linee guida per rendere il calcolo il più preciso e veloce possibile:
-
Prima di un comando che ricalcola una formula a due passaggi, aggiungere il comando SET UPDATECALC OFF per disabilitare il calcolo intelligente. Se l'opzione Calcolo intelligente è abilitata (impostazione predefinita), Essbase calcola solo i blocchi di dati non contrassegnati come puliti, ma quando si esegue un calcolo predefinito con l'opzione Calcolo intelligente abilitata, tutti i blocchi di dati vengono contrassegnati come puliti, pertanto Essbase non esegue il ricalcolo della formula a due passaggi.
-
Essbase non ricalcola automaticamente le formule a due passaggi negli script di calcolo, pertanto è necessario utilizzare il comando CALC TWOPASS.
-
Se è stato modificato il calcolo predefinito di CALC ALL e l'opzione Calcolo intelligente è abilitata, è possibile che i blocchi di dati non vengano contrassegnati come puliti dopo il primo calcolo. Vedere Calcolo intelligente dei cubi di storage a blocchi.
Per ottenere i vantaggi delle prestazioni del calcolo intelligente durante l'esecuzione del primo calcolo completo del database, utilizzare uno dei metodi illustrati nella serie di esempi riportata di seguito. Il metodo migliore dipende dalle esigenze di calcolo e dalla struttura del profilo del cubo.
Negli esempi che seguono, si supponga che il profilo abbia una dimensione contrassegnata come conti ed è una dimensione densa. Si desidera calcolare le vendite per ogni prodotto come percentuale delle vendite per tutti i prodotti. Si supponga che questa formula debba calcolare la dimensione:
Sales % Sales -> ProductQuando Essbase calcola il blocco di dati per ciascun prodotto, non ha ancora calcolato il valore Vendite -> Prodotto, pertanto i risultati delle vendite di ciascun prodotto come percentuale delle vendite totali non sono corretti.
Calcolo intelligente con un indice elevato
Se l'indice cubo è grande e si desidera utilizzare Calcolo intelligente, è possibile utilizzare una delle opzioni riportate di seguito per ottenere le migliori prestazioni.
Opzione script di calcolo
Utilizzare questo modello per creare uno script di calcolo che esegua un calcolo completo con Calcolo intelligente abilitato:
SET UPDATECALC ON;
CALC ALL;
SET UPDATECALC OFF;
SET CLEARUPDATESTATUS AFTER;
"Share of Sales" = Sales % Sales -> Product;Opzione script di calcolo e due passaggi
Per contrassegnare un membro come a due passaggi e utilizzare uno script di calcolo per calcolare prima il cubo completo, quindi il membro a due passaggi:
-
Inserire una formula nel profilo e contrassegnarla come a due passaggi.
-
Posizionare la formula sul membro appropriato nella dimensione contrassegnata come account (nell'esempio Share of Sales).
-
Creare uno script di calcolo che esegua un calcolo completo e quindi un calcolo a due passaggi:
SET UPDATECALC ON; CALC ALL; SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; CALC TWOPASS;
Opzione client e script di calcolo
Per eseguire un calcolo predefinito da un client, quindi utilizzare uno script di calcolo per eseguire il calcolo della formula:
-
Abilitare Calcolo intelligente se questo valore predefinito è stato modificato.
-
Eseguire un calcolo completo.
-
Utilizzare uno script di calcolo simile a questo esempio per disabilitare il calcolo intelligente e calcolare la formula:
SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; "Share of Sales" = Sales % Sales -> Product;o
SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; CALC TWOPASS;
Tutte le opzioni di esempio riportate sopra eseguono i task riportati di seguito.
-
Abilita Calcolo intelligente.
-
Calcolare il cubo completo e contrassegnare i blocchi di dati come puliti.
-
Disabilitare Calcolo intelligente.
-
Contrassegnare i blocchi ricalcolati come puliti, anche se questo calcolo è un calcolo parziale del cubo. Se non si utilizza il comando SET CLEARUPDATESTATUS AFTER, Essbase contrassegna i blocchi di dati come puliti solo dopo un calcolo completo.
-
Essbase esegue il ciclo del cubo, calcolando solo la formula per il membro pertinente (Condivisione delle vendite nel nostro esempio) o calcolando tutte le formule contrassegnate come a due passaggi nel profilo.
Esempio: Calcolo intelligente con un indice ridotto
Per utilizzare Calcolo intelligente quando l'indice del cubo è piccolo, procedere come segue.
-
Creare uno script di calcolo per calcolare il cubo, ma indicare a Essbase di non contrassegnare i blocchi di dati calcolati come puliti.
-
Contrassegnare tutti i blocchi di dati come puliti e non ricalcolare i blocchi di dati.
SET CLEARUPDATESTATUS OFF; CALC ALL; CALC TWOPASS; SET CLEARUPDATESTATUS ONLY; CALC ALL;-
SET CLEARUPDATESTATUS OFF indica a Essbase di non contrassegnare i blocchi di dati calcolati come puliti.
-
Il primo CALC ALL consente a Essbase di scorrere in sequenza il cubo, calcolando tutti i blocchi di dati danneggiati. Essbase non contrassegna i blocchi calcolati come puliti.
Essbase non ricalcola automaticamente le formule contrassegnate come a due passaggi.
-
CALC TWOPASS fa sì che Essbase esegua il ciclo nel cubo, ricalcolando le formule a due passaggi nella dimensione conti. Essbase ricalcola le formule perché i blocchi di dati richiesti non sono stati contrassegnati come puliti dal precedente CALC ALL. Essbase non contrassegna come puliti i blocchi di dati ricalcolati.
-
SET CLEARUPDATESTATUS ONLY indica a Essbase di contrassegnare i blocchi di dati come puliti, ma non di calcolare i blocchi di dati (questo comando disabilita il calcolo).
-
L'ultimo CALC ALL consente a Essbase di scorrere il cubo e contrassegnare tutti i blocchi di dati come puliti. Essbase non calcola i blocchi di dati.
-
Esempio: Calcolo intelligente disattivato per una formula a due passaggi
Per disattivare il Calcolo intelligente per una formula a due passaggi, creare uno script di calcolo che esegua i task riportati di seguito.
-
Disabilita il calcolo intelligente.
-
Esegue un calcolo completo.
-
Ripeti la seguente formula a due passaggi:
SET UPDATECALC OFF; CALC ALL; "Share of Sales" = Sales % Sales -> Product;