Teradata - Statistiche

L'ottimizzatore di Teradata presenta una strategia di esecuzione per ogni query SQL. Questa strategia di esecuzione si basa sulle statistiche raccolte sulle tabelle utilizzate all'interno della query SQL. Le statistiche sulla tabella vengono raccolte utilizzando il comando RACCOGLI STATISTICHE. Optimizer richiede informazioni sull'ambiente e dati demografici per elaborare una strategia di esecuzione ottimale.

Informazioni sull'ambiente

  • Numero di nodi, AMP e CPU
  • Quantità di memoria

Dati demografici

  • Numero di righe
  • Dimensione riga
  • Intervallo di valori nella tabella
  • Numero di righe per valore
  • Numero di null

Esistono tre approcci per raccogliere le statistiche sul tavolo.

  • Campionamento AMP casuale
  • Raccolta completa delle statistiche
  • Utilizzando l'opzione SAMPLE

Raccolta di statistiche

Il comando COLLECT STATISTICS viene utilizzato per raccogliere statistiche su una tabella.

Sintassi

Di seguito è riportata la sintassi di base per raccogliere statistiche su una tabella.

COLLECT [SUMMARY] STATISTICS   
INDEX (indexname) COLUMN (columnname) 
ON <tablename>;

Esempio

L'esempio seguente raccoglie le statistiche sulla colonna EmployeeNo della tabella Employee.

COLLECT STATISTICS COLUMN(EmployeeNo) ON Employee;

Quando la query precedente viene eseguita, produce il seguente output.

*** Update completed. 2 rows changed. 
*** Total elapsed time was 1 second.

Visualizzazione delle statistiche

È possibile visualizzare le statistiche raccolte utilizzando il comando HELP STATISTICS.

Sintassi

Di seguito è riportata la sintassi per visualizzare le statistiche raccolte.

HELP STATISTICS <tablename>;

Esempio

Di seguito è riportato un esempio per visualizzare le statistiche raccolte sulla tabella Employee.

HELP STATISTICS employee;

Quando la query precedente viene eseguita, produce il seguente risultato.

Date       Time      Unique Values           Column Names 
--------   -------- -------------------- ----------------------- 
16/01/01   08:07:04         5                       * 
16/01/01   07:24:16         3                   DepartmentNo 
16/01/01   08:07:04         5                   EmployeeNo