Teradata - Indice secondario

Una tabella può contenere un solo indice primario. Più spesso, ti imbatterai in scenari in cui la tabella contiene altre colonne, utilizzando le quali si accede frequentemente ai dati. Teradata eseguirà la scansione completa della tabella per tali query. Gli indici secondari risolvono questo problema.

Gli indici secondari sono un percorso alternativo per accedere ai dati. Esistono alcune differenze tra l'indice primario e l'indice secondario.

  • L'indice secondario non è coinvolto nella distribuzione dei dati.

  • I valori dell'indice secondario vengono memorizzati in tabelle secondarie. Queste tabelle sono costruite in tutti gli AMP.

  • Gli indici secondari sono facoltativi.

  • Possono essere creati durante la creazione della tabella o dopo la creazione di una tabella.

  • Occupano spazio aggiuntivo poiché creano sotto-tabelle e richiedono anche manutenzione poiché le sotto-tabelle devono essere aggiornate per ogni nuova riga.

Esistono due tipi di indici secondari:

  • Indice secondario univoco (USI)
  • Indice secondario non univoco (NUSI)

Indice secondario univoco (USI)

Un indice secondario univoco consente solo valori univoci per le colonne definite come USI. L'accesso alla riga dall'USI è un'operazione a due ampere.

Crea un indice secondario univoco

L'esempio seguente crea USI sulla colonna EmployeeNo della tabella dei dipendenti.

CREATE UNIQUE INDEX(EmployeeNo) on employee;

Indice secondario non univoco (NUSI)

Un indice secondario non univoco consente valori duplicati per le colonne definite come NUSI. L'accesso alla riga tramite NUSI è un'operazione su tutti gli amplificatori.

Crea indice secondario non univoco

Il seguente esempio crea NUSI sulla colonna FirstName della tabella dei dipendenti.

CREATE INDEX(FirstName) on Employee;