Molti clienti riscontrano problemi di prestazioni con le applicazioni di data warehouse. In alcuni casi l'analisi delle query SQL generate da Oracle Analytics risulta complessa. In questo argomento vengono fornite alcune linee guida su come analizzare e ridurre al minimo i problemi di prestazioni che potrebbero derivare dalle query SQL generate da Oracle Analytics.
In questo argomento non vengono trattati i problemi di prestazioni dovuti a problemi con la rete, il browser o la visualizzazione del report.
Analizzare il log delle query per Oracle Analytics (è necessario il livello di log 3)
Per informazioni su come trovare questo log o comprenderne il contenuto, vedere Raccogliere e analizzare i log delle query.
Analizzare la query SQL fisica
SELECT
e non applicare alcun filtro (filtri reali, non condizioni join).REPORT_AGGREGATE
, count(distinct)...
), passi di selezione, una query secondaria nel report, operatori di tipo insiemistico (UNION
), totali, totali parziali, viste multiple e così via.Analizzare il piano di esecuzione
Rivedere e migliorare il modello dati per ridurre il volume di dati letti
Ad esempio, se gli utenti selezionano i dati principalmente per l'anno, il trimestre o il mese corrente, è possibile suddividere il fact in due tabelle: una per i dati correnti e una per quelli archiviati. Nel database Oracle è anche possibile utilizzare il partizionamento.
Il volume di dati letti non dipende solo dal numero di righe in ciascuna tabella. Il volume della tabella dipende anche dal numero e dalla dimensione delle colonne che contiene. Ad esempio, è possibile suddividere una tabella di grandi dimensioni con 500 colonne in due tabelle, una con le 50 colonne utilizzate più di frequente e l'altra con le rimanenti 450 colonne che vengono utilizzate raramente.
Molti problemi di prestazioni in Oracle Analytics derivano da una progettazione mediocre che causa la generazione di query SQL non ottimali. Se si modifica la progettazione, è possibile migliorare le query SQL generate da Oracle Analytics. Oltre che sulle prestazioni dei report, questa operazione può influire notevolmente anche sulla quantità di risorse utilizzate nel database.