Gestire i blocchi di inizializzazione

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.

  • Disabilitare tutti i blocchi di inizializzazione non necessari.

    Ad esempio, in Oracle BI Applications disabilitare i blocchi di inizializzazione che fanno riferimento ai moduli di Oracle BI Applications non più in uso.

  • Ad eccezione dei casi in cui è prevista una regola di precedenza, unire tutti i blocchi di inizializzazione 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
  • Disabilitare tutti i blocchi di inizializzazione che selezionano un valore non modificabile da dual o W_DUAL_G e inserire il valore non modificabile nell'inizializzatore predefinito della variabile corrispondente.
  • Unire i blocchi di inizializzazione rimanenti che selezionano dati da dual in un'istruzione SELECT singola.
  • Per i clienti di Oracle BI Applications, disabilitare tutti i blocchi di inizializzazione utilizzati per recuperare nomi e valori degli attributi personalizzati di Oracle Human Capital Management se gli attributi corrispondenti non vengono utilizzati (se il valore predefinito standard 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
  • Unire tutti i blocchi di inizializzazione rimanenti diversi da 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.