Cache Essbase e prestazioni calcolo

Per ottimizzare le prestazioni di calcolo, in particolare per i calcoli di grandi dimensioni, Essbase utilizza le cache per coordinare l'utilizzo della memoria. Assicurarsi che la cache della calcolatrice, se utilizzata, sia abbastanza grande da ottimizzare i calcoli. Rivedere in che modo la cache dell'indice, la cache dei dati, la cache della calcolatrice dinamica e la cache dell'applicazione possono essere rilevanti.

Quando si calcola un cubo, Essbase utilizza circa 30 byte di memoria per membro nel profilo. Pertanto, se il cubo contiene 5.000 membri, Essbase richiede circa 150 KB di memoria per il calcolo.

Nota

È possibile evitare l'uso eccessivo della memoria combinando script di calcolo. È possibile ottenere buone prestazioni utilizzando il calcolo parallelo con un singolo script di calcolo. Vedere Usa calcolo parallelo.

Essbase utilizza la memoria per ottimizzare le prestazioni di calcolo, in particolare per i calcoli di grandi dimensioni. La quantità di memoria utilizzata non è controllabile, se non modificando le dimensioni del contorno del cubo. Tuttavia, è possibile assicurarsi che le dimensioni della cache di memoria consentano a Essbase di ottimizzare il calcolo.

Essbase utilizza le seguenti cache per coordinare l'uso della memoria:

  • Cache della calcolatrice.

    Quando si calcola per la prima volta un cubo, la dimensione della cache della calcolatrice è significativa per le prestazioni di calcolo. Se possibile, assicurarsi che la cache della calcolatrice sia sufficientemente grande da consentire a Essbase di utilizzare l'opzione cache della calcolatrice ottimale.

    Fare riferimento alla sezione Dimensioni della cache della calcolatrice.

  • Cache della calcolatrice dinamica. Vedere Dimensione delle cache della calcolatrice dinamica.

  • Cache di indice. Se il cubo è di grandi dimensioni, la cache dell'indice predefinita non è sufficientemente grande da fornire prestazioni di calcolo ottimali. Vedere la proprietà di configurazione dell'applicazione INDEXCACHESIZE oppure il database alter MaxL set index_cache_size.

  • Cache di dati. Consultare la proprietà di configurazione dell'applicazione DATACACHESIZE o il database alter MaxL set data_cache_size.

  • Cache di file dati.

  • Cache dell'applicazione. Se si utilizza la modalità ibrida nei cubi di memorizzazione a blocchi, la cache dell'applicazione può aiutare a gestire l'uso della memoria per i recuperi. La cache dell'applicazione è simile alla cache di memorizzazione di aggregazione. Per ulteriori informazioni, vedere Cache di memorizzazione di aggregazione.

Dimensione della cache della calcolatrice

La dimensione migliore per la cache della calcolatrice Essbase, se utilizzata, dipende dal numero e dalla densità delle dimensioni sparse nel profilo. La comprensione del bitmap della cache della calcolatrice ti aiuterà a dimensionare in modo ottimale la cache della calcolatrice.

Per ottimizzare la gestione dei blocchi, Essbase può creare una bitmap, la cui dimensione è controllata dalla dimensione della cache della calcolatrice, per registrare e tenere traccia dei blocchi di dati durante un calcolo. Il bitmap è un metodo di recupero più rapido per Essbase rispetto all'I/O del disco, in particolare se si sta calcolando un cubo per la prima volta o se si sta calcolando un cubo con dati sparsi.

Essbase utilizza il bitmap della cache del calcolatore se il database dispone di almeno due dimensioni sparse e se viene soddisfatta anche una di queste condizioni:

  • Calcolare almeno una dimensione sparsa completa.

  • È possibile specificare il comando SET CACHE ALL in uno script di calcolo.

Informazioni sulla bitmap della cache del calcolatore

Per la cache della calcolatrice, Essbase separa le dimensioni sparse in due gruppi:

  • Dimensioni bitmap: le dimensioni sparse che Essbase inserisce nel bitmap finché non è completo. Ogni combinazione di membri delle dimensioni sparse posizionate nella bitmap occupa 1 bit di memoria. Lo spazio nel bitmap deve essere sufficiente affinché ogni combinazione di membri di una dimensione sparsa possa essere inserita nel bitmap.

  • Dimensioni di ancoraggio: le restanti una o più dimensioni sparse nel profilo del database che non rientrano nel bitmap.

Essbase inizia con la prima dimensione sparsa nel profilo e si inserisce il maggior numero possibile nel bitmap. Le dimensioni che si adattano sono le dimensioni bitmap. Poiché la cache della calcolatrice controlla le dimensioni della bitmap, il numero di dimensioni sparse che possono adattarsi dipende dalle dimensioni della cache della calcolatrice.

Le restanti dimensioni sparse sono le dimensioni di ancoraggio. Per l'ancoraggio delle dimensioni, Essbase non può utilizzare il bitmap per determinare se esistono blocchi.

Per vedere quali dimensioni ancorano le dimensioni e quali sono dimensioni bitmap, utilizzare il comando di calcolo DETAIL SET MSG per visualizzare le informazioni bitmap nel log dell'applicazione.

Ordinare attentamente le dimensioni sparse nel profilo in modo che il maggior numero possibile di dimensioni possa essere inserito nella bitmap. Iniziare con la dimensione che contiene il minor numero di membri e continuare fino all'ultima dimensione con il maggior numero di membri. Questo ordine consente di inserire più dimensioni nella bitmap e migliora le prestazioni di calcolo.

Nota

L'ordine delle dimensioni sparse nel profilo influisce anche sulle prestazioni delle query. Fare riferimento alla sezione Progettare un profilo per ottimizzare le prestazioni.

Essbase utilizza un singolo bitmap se sono presenti più dimensioni di ancoraggio (o se la cache della calcolatrice non è sufficientemente grande da supportare più bitmap) e utilizza più bitmap se esiste una dimensione di ancoraggio. Una singola bitmap utilizza meno memoria, ma è meno efficiente di più bitmap.

Più bitmap utilizzano più memoria, ma sono più veloci rispetto all'utilizzo di un singolo bitmap. Un bitmap tiene traccia dei blocchi figlio e uno tiene traccia dei blocchi padre. Il miglioramento delle prestazioni è particolarmente elevato quando si calcola il database per la prima volta.

Il numero di bitmap utilizzate è determinato dal numero massimo di elementi padre dipendenti per qualsiasi membro della dimensione di ancoraggio. Un membro ha un padre dipendente, a meno che non abbia un membro condiviso. Si consideri ad esempio la dimensione Prodotto del database Sample.Basic. Il membro Cola (100-10) ha un genitore, Colas (100). Tuttavia, la dieta Cola (100-20) ha due genitori, Diet Drinks (Diet) e Colas (100). Nessun membro del prodotto ha più di due genitori dipendenti. Pertanto, se Prodotto è la dimensione di ancoraggio, il numero massimo di elementi padre dipendenti è due.

Essbase sceglie una delle tre opzioni, come illustrato nella tabella riportata di seguito, per il calcolo:

Tabella 34-2 Opzioni cache calcolatore

Opzione Metodo Valutazione delle prestazioni

1

Singola dimensione di ancoraggio, bitmap multiple

1

2

Dimensione di ancoraggio singola, bitmap singola

2

3

Dimensioni di ancoraggio multiple, bitmap singola

3

Essbase sceglie il metodo di prestazioni ottimale per un calcolo, in base alle dimensioni della cache della calcolatrice. Se la dimensione della cache della calcolatrice è troppo piccola per una qualsiasi delle opzioni precedenti, Essbase non utilizza una cache della calcolatrice. Le prestazioni di calcolo possono essere significativamente compromesse.

L'abilitazione del calcolo parallelo può modificare l'opzione cache della calcolatrice utilizzata. Fare riferimento alla sezione Relazione tra il calcolo parallelo CALCPARALLEL e altre funzioni Essbase.

Attenzione

Se si calcola il database per la prima volta, la dimensione della cache della calcolatrice è particolarmente significativa per le prestazioni di calcolo. Se possibile, assicurarsi che la cache della calcolatrice sia sufficientemente grande da consentire a Essbase di utilizzare l'opzione cache della calcolatrice ottimale.

Determinare la dimensione della cache del calcolatore

La dimensione ottimale della cache della calcolatrice dipende dalla memoria disponibile e dalla natura e configurazione del cubo.

Utilizzando la formula seguente, è possibile calcolare la dimensione della cache della calcolatrice necessaria per Essbase per scegliere ciascuna delle tre opzioni nella tabella Opzioni cache calcolatore riportata sopra:

Calculator cache = Bitmap size in bytes * Number of bitmaps

dove

Bitmap size in bytes = Max ((member combinations on the bitmap dimensions / 8), 4)

e dove

Number of bitmaps = Maximum number of dependent parents in the anchoring dimension + 2 constant bitmaps

Nota

La dimensione minima della bitmap è di 4 byte. Se le combinazioni di membri nelle dimensioni bitmap/8 sono inferiori a 4 byte, Essbase utilizza una dimensione bitmap di 4 byte.

Si consideri un cubo di esempio con cinque dimensioni sparse (da S1 a S5):

Tabella 34-3 Esempio: cubo campione con cinque dimensioni sparse

Dimensione sparsa Numero di membri Genitori familiari

S1

20

Non applicabile

S2

20

Non applicabile

S3

50

Non applicabile

S4

50

Non applicabile

S5

200

3

Utilizzare questo cubo di esempio per i seguenti calcoli di esempio:

  • Opzione 1: Dimensione di ancoraggio singola, bitmap multiple
  • Opzione 2: Dimensione di ancoraggio singola, bitmap singola
  • Opzione 3: Dimensioni di ancoraggio multiple, bitmap singola

Opzione 1: Dimensione di ancoraggio singola, bitmap multiple

Per questo calcolo di esempio, si supponga che i dati fact relativi a un database siano i seguenti:

  • Dimensioni bitmap: S1, S2, S3, S4

  • Dimensione di ancoraggio: S5

  • Genitori dipendenti nella dimensione di ancoraggio: 3

Eseguire il calcolo seguente:

Bitmap size in bytes = (S1 * S2 * S3 * S4) / 8
                     = (20 * 20 * 50 * 50) / 8
                     = 125,000 bytes

Number of bitmaps = Maximum number of dependent parents in the anchoring dimension
                  = + 
                  = 2 constant bitmaps
                  = 3 + 2
                  = 5

Calculator cache = Bitmap size * Number of bitmaps
                 = 125,000 * 5
                 = 625,000 bytes

Affinché Essbase utilizzi più bitmap per questo database con una dimensione di ancoraggio, la cache della calcolatrice deve essere di 625.000 byte.

Opzione 2: Dimensione di ancoraggio singola, bitmap singola

Per questo calcolo di esempio, si supponga che i dati fact relativi a un database siano i seguenti:

  • Dimensioni bitmap: S1, S2, S3, S4

  • Dimensione di ancoraggio: S5

  • Genitori dipendenti nella dimensione di ancoraggio: non applicabile

Eseguire il calcolo seguente:

Bitmap size in bytes = (S1 * S2 * S3 * S4) / 8
                     = (20 * 20 * 50 * 50) / 8
                     = 125,000 bytes

Number of bitmaps = Single bitmap
                  = 1

Calculator cache = Bitmap size * Number of bitmaps
                 = 125,000 * 1
                 = 125,000 bytes

Affinché Essbase utilizzi un singolo bitmap per questo database con una dimensione di ancoraggio, la cache della calcolatrice deve essere di 125.000 byte.

Opzione 3: Dimensioni di ancoraggio multiple, bitmap singola

Per questo calcolo di esempio, si supponga che i dati fact relativi a un database siano i seguenti:

  • Dimensioni bitmap: S1, S2, S3

  • Dimensioni di ancoraggio: S4, S5

  • Genitori dipendenti nelle dimensioni di ancoraggio: non applicabile

Eseguire il calcolo seguente:

Eseguire il calcolo seguente:

Bitmap size in bytes = (S1 * S2 * S3) / 8
                     = (20 * 20 * 50) / 8
                     = 2,500 bytes

Number of bitmaps = Single bitmap
                  = 1

Calculator cache = Bitmap size * Number of bitmaps
                 = 2,500 * 1
                 = 2,500 bytes

Affinché Essbase utilizzi un singolo bitmap per questo database con più dimensioni di ancoraggio, la cache della calcolatrice deve essere di 2.500 byte.

La tabella riportata di seguito mostra l'opzione della cache della calcolatrice utilizzata da Essbase, a seconda della dimensione della cache della calcolatrice specificata.

Tabella 34-4 Selezione dell'opzione della cache della calcolatrice basata sulla dimensione della cache della calcolatrice

Dimensione minima specificata Opzione selezionato

625,000 byte

Opzione 1 (fornisce prestazioni ottimali)

125,000 byte

Opzione 2

2.500 byteFoot 1

Opzione 3

Nota a piè di pagina 1

Se si specifica una dimensione della cache della calcolatrice inferiore a 2.500 byte, Essbase non utilizza una cache della calcolatrice durante il calcolo. Le prestazioni di calcolo possono essere significativamente compromesse.

È possibile controllare l'opzione cache calcolatrice che Essbase è in grado di utilizzare utilizzando il comando SUMMARY SET MSG in uno script di calcolo. Eseguire il seguente script di calcolo sul cubo vuoto:

SET MSG SUMMARY;
CALC ALL;

Essbase visualizza l'impostazione della cache del calcolatore nel log dell'applicazione. Vedere Comandi SET per Calc Testing and Statistics.

La dimensione massima della cache della calcolatrice che è possibile specificare è di 200.000.000 byte. Il valore predefinito è di 200,000 byte. La dimensione della cache della calcolatrice scelta dipende dalla memoria disponibile e dalla configurazione del cubo.

Nota

Le dimensioni della calcolatrice, dell'indice, del file di dati e delle cache di dati in genere hanno un effetto maggiore sulle prestazioni se il calcolo si basa più sulle aggregazioni e meno sui calcoli delle formule.

Se si calcola il cubo per la prima volta, la dimensione della cache della calcolatrice è particolarmente significativa. Se possibile, assicurarsi che la cache della calcolatrice sia sufficientemente grande da consentire a Essbase di utilizzare l'opzione 1.

È possibile utilizzare la dimensione predefinita della cache della calcolatrice oppure impostare la dimensione della cache della calcolatrice all'interno di uno script di calcolo. Se si imposta la dimensione da uno script di calcolo, l'impostazione viene utilizzata solo per la durata dello script di calcolo. Vedere il comando SET CACHE dello script di calcolo e l'impostazione di configurazione CALCCACHE.

Dimensione cache calcolatore dinamico

Per ogni cubo aperto, Essbase alloca un'area in una cache di calcolatrice dinamica per i blocchi di dati. Per determinare se la cache della calcolatrice dinamica viene utilizzata in modo efficace, rivedere il log dell'applicazione e le impostazioni di configurazione.

Rivedi uso cache calcolatore dinamico

L'impostazione di configurazione DYNCALCCACHEMAXSIZE specifica la dimensione massima di ogni cache della calcolatrice dinamica nel server Essbase. Per impostazione predefinita, la dimensione è impostata su 20 MB. Essbase alloca l'area in una cache di calcolatrice dinamica per i blocchi di dati fino a quando non viene allocata l'area di memoria massima specificata dall'impostazione DYNCALCACHEMAXSIZE.

Essbase scrive due messaggi nel log dell'applicazione per ogni recupero di dati. Nell'esempio seguente (troncato), il primo messaggio descrive il tempo totale richiesto per il recupero:

[2024-07-27T16:43:52.707+00:00] ... [EXEC_TIME: 0.53] Regular extractor completed successfully
[2024-07-27T16:43:52.707+00:00] ... Regular Extractor Big Block Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]

Se si utilizza una cache della calcolatrice dinamica, un secondo messaggio visualizza il numero di blocchi calcolati nella cache della calcolatrice dei dati (Dyn.Calc.Cache: [n]) e il numero di blocchi calcolati in memoria al di fuori della cache della calcolatrice dinamica (non-Dyn.Calc.Cache: [n]).

Per determinare se la cache della calcolatrice dinamica viene utilizzata in modo efficace, esaminare entrambi i messaggi e prendere in considerazione le impostazioni di configurazione. Ad esempio, se il messaggio indica che i blocchi sono stati calcolati all'esterno e in una cache di calcolatrice dinamica, è possibile aumentare l'impostazione DYNCALCCACHEMAXSIZE.

Se la dimensione massima specificata è tutto ciò che ci si può permettere e se si utilizza la memoria esterna alla cache della calcolatrice per completare i recuperi calcolati in modo dinamico si verificano ritardi inaccettabili, impostare DYNCALCCACHEWAITFORBLK su TRUE.

È possibile utilizzare l'istruzione MaxL database di query con la grammatica statistiche delle prestazioni per visualizzare un riepilogo dell'attività della cache della calcolatrice dinamica.

Modifica dimensione cache calcolatore dinamico

Sono disponibili cinque impostazioni di configurazione rilevanti per le cache della calcolatrice dinamica. I valori ottimali per queste impostazioni dipendono dalla memoria del computer Essbase Server, dalla configurazione dei database Essbase e dalla natura delle query utente.

La descrizione seguente di ciascuna impostazione di configurazione include consigli su come determinare i valori per il sistema. Per soddisfare i requisiti univoci del tuo sito, potrebbe essere necessario testare e regolare le impostazioni.

  • DYNCALCCACHEMAXSIZE: questa impostazione specifica la dimensione massima che Essbase può allocare a ogni cache della calcolatrice dinamica.

    Valore di impostazione consigliato = C * S * U.

    • C è il valore del numero massimo di blocchi che Essbase deve correggere (ottenere l'indirizzabilità) durante il calcolo di un blocco. Di solito, un valore di 100 è una buona approssimazione per questo valore. Questo numero può essere un numero maggiore se si sta consolidando un numero molto elevato di figli in un calcolo formula.

    • S è la dimensione del blocco espanso più grande in tutti i database del computer server Essbase. Per calcolare la dimensione del blocco espanso, moltiplicare il numero di membri (inclusi i membri Calcolo dinamico e i membri della serie temporale dinamica) in ogni dimensione densa insieme per il numero di celle nel blocco e moltiplicare il numero di celle per la dimensione di ogni cella membro, 8 byte.

      Ad esempio, si consideri il conteggio dei membri nelle dimensioni dense in Sample.Basic (i membri Solo etichetta non vengono conteggiati):

      • 19 (Anno, con 12 membri memorizzati e 7 membri Dynamic Calc, inclusi HTD e QTD)

      • 14 (Misure, con 8 membri memorizzati e 6 membri di calcolo dinamico)

      • 4 (Scenario, con 2 membri memorizzati e 2 membri Calcolo dinamico)

      S = 19 * 14 * 4 celle (8 byte / cella) = 8512 byte per blocco

      Questo numero viene visualizzato nel log dell'applicazione come dimensione del blocco logico.

    • U è il numero massimo di utenti concorrenti previsti nel database con il numero maggiore di utenti concorrenti.

      L'assegnazione del valore 0 (zero) a DYNCALCACHEMAXSIZE indica a Essbase di non utilizzare le cache della calcolatrice dinamica.

      Per impostazione predefinita, la dimensione di questo valore è di 20 MB (20.971.520 byte).

  • DYNCALCCACHEWAITFORBLK: se Essbase utilizza tutta l'area allocata per una cache di calcolatrice dinamica, questa impostazione indica a Essbase se attendere che lo spazio diventi disponibile nella cache o se scrivere e calcolare immediatamente i blocchi in memoria al di fuori della cache. Se la cache è troppo piccola, è possibile che più thread siano in coda.

    Valore di impostazione consigliato = FALSE (valore predefinito).

    Prima di impostare su TRUE, provare le alternative riportate di seguito.

    • Aggiungere memoria fisica al computer server

    • Aumentare il valore di DYNCALCCACHEMAXSIZE, testare e ripetere fino a quando non si verifica che non sia possibile utilizzare più memoria per la cache della calcolatrice dinamica.

  • DYNCALCCACHEBLKTIMEOUT: se Essbase deve attendere lo spazio disponibile nella cache della calcolatrice dinamica, questa impostazione definisce il tempo di attesa.

    Valore di impostazione consigliato = WT / B.

    • WT è il tempo di attesa massimo tollerabile per una query, ad esempio 5 secondi.

    • B è il numero totale di blocchi logici a cui si accede nella query più grande.

      Per determinare il valore di B, controllare i messaggi nel log dell'applicazione per il maggior numero di Dyn.Calc.Cache "Big Block Allocs" per una query.

  • DYNCALCCACHEBLKRELEASE: se Essbase ha atteso che l'ora e lo spazio specificati non siano ancora disponibili nella cache della calcolatrice dinamica, questa impostazione indica a Essbase se scrivere e calcolare i blocchi immediatamente al di fuori della cache della calcolatrice dinamica o creare spazio eseguendo lo swapping dei blocchi e comprimendo temporaneamente i blocchi scambiati in un buffer.

    Valore di impostazione consigliato = FALSE (valore predefinito).

    Impostare su TRUE solo se si verificano gravi problemi di carenza di memoria.

  • DYNCALCCACHECOMPRBLKBUFSIZE: se Essbase ha atteso il tempo di attesa specificato e l'impostazione DYNCALCCACHEBLKRELEASE è TRUE, questa impostazione è la dimensione del buffer a blocchi compressi della cache della calcolatrice dinamica.

    Valore di impostazione consigliato = (C * S) / 2

    dove C è il valore del numero massimo di blocchi che Essbase deve correggere (ottenere l'indirizzabilità) quando si calcola un blocco e S è la dimensione del blocco espanso più grande in tutti i database del computer. Calcolare C e S allo stesso modo descritto o l'impostazione DYNCALCCACHEMAXSIZE.