Quando si utilizza Data Gateway o Remote Data Connector con Oracle Analytics Cloud si verifica un piccolo sovraccarico per la durata dell'esecuzione di ciascuna query.
La durata aggiuntiva non è evidente quando si esegue un report perché è inferiore a 0,3 secondi. Tuttavia, potrebbero verificarsi problemi di prestazioni se si eseguono molti (il numero effettivo dipende dai requisiti in termini di prestazioni) blocchi di inizializzazione ogni volta che qualcuno esegue l'accesso, in quanto le query dei blocchi di inizializzazione vengono eseguite in serie. In questo argomento vengono consigliati dei metodi per ridurre il numero di blocchi di inizializzazione delle sessioni.
L'uso dell'opzione Differita per i blocchi di inizializzazione non risolve il problema, in quanto i blocchi di inizializzazione vengono eseguiti quando si apre la prima pagina del dashboard.
Ciò rappresenta un problema se si utilizza Oracle BI Applications, che esegue più di 200 blocchi di inizializzazione. Per Oracle Analytics Cloud, il modo migliore per evitare questi problemi di prestazioni consiste nel ridurre il numero di blocchi di inizializzazione.
Oracle consiglia i metodi riportati di seguito per ridurre il numero di blocchi di inizializzazione delle sessioni.
Ad esempio, in Oracle BI Applications disabilitare i blocchi di inizializzazione che fanno riferimento ai moduli di Oracle BI Applications non più in uso.
row_wise
che utilizzano lo stesso connection pool e restituiscono lo stesso tipo di dati utilizzando l'istruzione UNION ALL
tra le rispettive query.
Ad esempio:
Init block 1: query1 Init block 2: query2 Merged init block: query1 union all query2
dual
o W_DUAL_G
e inserire il valore non modificabile nell'inizializzatore predefinito della variabile corrispondente.SELECT
singola.HIDE
è il valore corrente per queste variabili) o se non si utilizza Oracle Human Capital Management come origine dati di Oracle BI Applications (in Oracle BI Applications sono presenti 100 blocchi di inizializzazione come questo):
HR xxx Attribute yyy
row_wise
e utilizzare lo stesso connection pool. Ad esempio:
Il blocco di inizializzazione 1 si basa sulla query1: select colA from tableA where….
Il blocco di inizializzazione 2 si basa sulla query2: select colB from tableB where….
È possibile unirli in un unico blocco di inizializzazione utilizzando una query come la seguente:
Select MAX(colA), MAX(colB) from ( select cola as cola, null as colB from tableA where…. Union all Select null, colB from tableB where…) tmp
È possibile eseguire il numero di unioni necessario per recuperare tutte le variabili dallo stesso connection pool in un'unica query:
Queste unioni non sono facili da implementare o gestire e, quando si creano le query e si assegnano tutte le variabili a un unico blocco di inizializzazione, si rischia di commettere errori.
Un'implementazione e una gestione attente delle variabili e delle query dei blocchi di inizializzazione consentono di ridurre notevolmente il tempo necessario per l'accesso e la visualizzazione della prima pagina del dashboard.