Per ottimizzare le prestazioni della query, raccogliere le statistiche sui dati sottoposti a query.
Le decisioni dell'ottimizzatore basato sui costi sono fondamentali per le prestazioni delle query. L'ottimizzatore prende le sue decisioni utilizzando le informazioni statistiche sui dati sottoposti a query. Statistiche accurate e aggiornate garantiscono prestazioni ottimali delle query. Raccogliere statistiche ogni volta che si applicano le seguenti condizioni.
È possibile leggere ulteriori informazioni sui programmi di ottimizzazione e sulle prestazioni delle query in Profili e linee guida di ottimizzazione.
- Una nuova tabella viene creata e popolata con dati.
- I dati di una tabella esistente subisce modifiche significative, ad esempio le seguenti condizioni:
- Vengono aggiunti nuovi dati.
- I vecchi dati vengono rimossi.
- I dati esistenti vengono aggiornati.
Data Virtualization raccoglie statistiche per i seguenti elementi, in modo che l'ottimizzatore disponga di informazioni sufficienti per creare piani di esecuzione efficienti:
- Qualsiasi tabella a cui si fa riferimento in una query.
- Qualsiasi tabella a cui si fa riferimento in una vista. Quando si crea una vista virtuale, assicurarsi di raccogliere statistiche per tutte le tabelle a cui si fa riferimento nella vista. Le statistiche non vengono raccolte sulle viste.
- Tutte le colonne a cui si fa riferimento nei predicati (inclusi i predicati join) e le funzioni di aggregazione a cui si fa riferimento nelle query.
Non è necessario raccogliere statistiche per le colonne che vengono visualizzate solo nel primo elenco SELECT di una query.
- Cardinalità tabella (CARD)
- Il numero di righe nella tabella.
- Cardinalità colonna (COLCARD)
- Numero di valori distinti nella colonna.
- Chiave alta (HIGH2KEY)
- Il valore di dati più alto o il secondo più alto per la colonna, a seconda dell'origine dati remota della tabella virtualizzata e del tipo di raccolta utilizzato.
- Tasto basso (LOW2KEY)
- Il valore di dati più basso o il secondo più basso per la colonna, a seconda dell'origine dati remota della tabella virtualizzata e del tipo di raccolta utilizzato. Per molte fonti di dati, Data Virtualization raccoglie il valore chiave più basso, che può essere un valore vuoto. Uno spazio vuoto non indica che non sono state raccolte le statistiche.
- Numero di valori null (NUMNULLS)
- Il numero di valori null nella colonna. Questo numero è l'unica statistica raccolta per le colonne di tipo LOB.
Tipi di raccolta statistiche
- remote-catalog
- Questo tipo di raccolta statistiche è supportato solo per le tabelle virtualizzate nelle origini dati remote che supportano un metodo locale di raccolta statistiche. Le statistiche memorizzate nelle tabelle del catalogo dell'origine dati remota vengono recuperate e quindi memorizzate nel catalogo delle statistiche Data Virtualization. È fondamentale garantire la disponibilità di statistiche accurate nell'origine dati remota. Il tipo remote-catalog di raccolta statistiche non è supportato per le tabelle raggruppate.
- remote-query
- Questo tipo di raccolta di statistiche utilizza query SQL rispetto alla tabella virtualizzata per calcolare le statistiche. Questo tipo può essere dispendioso in termini di risorse e richiede molto tempo per essere completato se la tabella virtualizzata ha molte righe o se le statistiche sono raccolte per molte colonne. Per migliorare le prestazioni e risparmiare risorse, è possibile raccogliere le statistiche con il campionamento dei dati specificando l'opzione TABLESAMPLE nella procedura memorizzata COLLECT_STATISTICS in Data Virtualization o utilizzando il comando 'ANALYZE per le origini dati nel cloud object storage.
Best practice
Per le fonti di dati remote che supportano strumenti di raccolta di statistiche locali, come 'IBM® Db2® e 'Oracle, la pratica migliore per la raccolta di statistiche in Data Virtualization è garantire che le statistiche locali della fonte di dati remota siano accurate e aggiornate, in particolare le statistiche delle colonne di base per le colonne chiave utilizzate nei predicati delle query. A questo scopo è bene creare un lavoro di raccolta delle statistiche nel client Web di Data Virtualization.