Riduci impatto calcolo dinamico su tempo di recupero
L'aumento del tempo di recupero quando si calcola dinamicamente un membro di una dimensione densa non è significativo a meno che il membro non contenga una formula complessa. L'aumento del tempo di recupero può essere significativo quando si contrassegnano i membri delle dimensioni sparse come Calcolo dinamico.
Nota
Per un elenco delle funzioni che hanno l'effetto più significativo sul recupero delle query, vedere Funzioni e prestazioni set di membri.
Visualizza un fattore di recupero
Per stimare l'eventuale aumento del tempo di recupero, Essbase calcola un fattore di recupero per un profilo del database quando si salva il profilo. Essbase calcola questo fattore di recupero in base al blocco di dati calcolato dinamicamente più costoso per il calcolo di Essbase. Il fattore di recupero tiene conto solo delle aggregazioni. Non considera l'impatto di recupero delle formule.
Il fattore di recupero è il numero di blocchi di dati che Essbase deve recuperare dal disco o dal database per calcolare il blocco più costoso. Se il database contiene membri Calcolo dinamico solo in dimensioni dense (nessun membro Calcolo dinamico nelle dimensioni sparse), il fattore di recupero è 1.
Un profilo con un elevato fattore di recupero (ad esempio, maggiore di 2000) può causare lunghi ritardi quando gli utenti recuperano i dati. Tuttavia, l'impatto effettivo sul tempo di recupero dipende anche dal numero di valori di dati calcolati dinamicamente recuperati da un utente. Il fattore di recupero è solo un indicatore. In alcune applicazioni, l'uso dei membri Calcolo dinamico può ridurre i tempi di recupero perché le dimensioni del database e la dimensione dell'indice sono ridotte.
In Essbase viene visualizzato il valore del fattore di recupero nel log dell'applicazione.
Un messaggio simile a questo esempio indica un fattore di recupero:
Essbase needs to retrieve [1] Essbase kernel blocks in order
to calculate the top dynamically-calculated block.Questo messaggio indica che Essbase deve recuperare un blocco per calcolare il blocco di dati calcolato dinamicamente più costoso.
Aumenta dimensione buffer di recupero
Quando gli utenti eseguono una query da Smart View, MDX o Report Writer, Essbase utilizza il buffer di recupero per ottimizzare la query. L'aumento della dimensione del buffer di recupero può migliorare le prestazioni delle query, poiché Essbase può elaborare contemporaneamente sezioni di dati più grandi.
Per impostazione predefinita, la dimensione del buffer di recupero è di 20 KB. Tuttavia, è possibile velocizzare il tempo di recupero se si imposta una dimensione del buffer di recupero maggiore di 20 KB.
Per aumentare la dimensione del buffer di recupero, è possibile utilizzare l'istruzione di modifica del database MaxL. Ad esempio:
alter database Sample.Basic set retrieve_buffer_size 20kb;In alternativa, è possibile modificare le dimensioni del buffer nelle impostazioni di personalizzazione del database utilizzando l'interfaccia Web di Essbase.
Usa cache calcolatore dinamico
Per impostazione predefinita, quando Essbase calcola un membro di Calcolo dinamico in una dimensione densa (ad esempio, per una query), scrive tutti i blocchi necessari per il calcolo in un'area in memoria chiamata cache della calcolatrice dinamica. Quando Essbase scrive questi blocchi nella cache della calcolatrice dinamica, li espande per includere tutti i membri di Calcolo dinamico nelle dimensioni dense.
Se una query include un membro di calcolo a due passaggi in una dimensione densa, la query richiede una cache di calcolatrice dinamica per ogni blocco recuperato.
L'utilizzo della cache della calcolatrice dinamica di Essbase consente il controllo centralizzato dell'utilizzo della memoria per i calcoli dinamici. La gestione dei blocchi di dati nella cache della calcolatrice dinamica riduce anche il fabbisogno complessivo di spazio di memoria e può migliorare le prestazioni riducendo il numero di chiamate al sistema operativo per eseguire allocazioni di memoria.
Nota
La cache della calcolatrice dinamica e la cache della calcolatrice utilizzano approcci diversi per ottimizzare le prestazioni di calcolo.
Fare riferimento anche a: Dimensioni cache calcolatrice dinamica e Dimensioni cache calcolatrice.
Rivedi uso cache calcolatore dinamico
Essbase scrive due messaggi nel log dell'applicazione per ogni recupero di dati. Nell'esempio seguente, il primo messaggio descrive il tempo totale richiesto per il recupero:
Regular Extractor Elapsed Time : [0.531] seconds
Regular Extractor Big Blocks 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 è possibile permettersi per tutte le cache della calcolatrice dinamica sul server e se si utilizza la memoria esterna alla cache della calcolatrice per completare i recuperi calcolati in modo dinamico, si verificano ritardi inaccettabili (ad esempio a causa di attività di swap o paging), 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.