Teradata - Index secondaire

Une table ne peut contenir qu'un seul index primaire. Le plus souvent, vous rencontrerez des scénarios dans lesquels la table contient d'autres colonnes, à l'aide desquelles les données sont fréquemment consultées. Teradata effectuera une analyse complète de la table pour ces requêtes. Les index secondaires résolvent ce problème.

Les index secondaires sont un autre chemin d'accès aux données. Il existe quelques différences entre l'index primaire et l'index secondaire.

  • L'index secondaire n'est pas impliqué dans la distribution des données.

  • Les valeurs d'index secondaires sont stockées dans des sous-tables. Ces tableaux sont intégrés à tous les AMP.

  • Les index secondaires sont facultatifs.

  • Ils peuvent être créés lors de la création d'une table ou après la création d'une table.

  • Ils occupent un espace supplémentaire car ils construisent des sous-tableaux et ils nécessitent également une maintenance puisque les sous-tableaux doivent être mis à jour pour chaque nouvelle ligne.

Il existe deux types d'index secondaires -

  • Indice secondaire unique (USI)
  • Index secondaire non unique (NUSI)

Indice secondaire unique (USI)

Un index secondaire unique autorise uniquement des valeurs uniques pour les colonnes définies comme USI. L'accès à la ligne par USI est une opération à deux ampères.

Créer un index secondaire unique

L'exemple suivant crée USI sur la colonne EmployeeNo de la table employee.

CREATE UNIQUE INDEX(EmployeeNo) on employee;

Index secondaire non unique (NUSI)

Un index secondaire non unique permet des valeurs en double pour les colonnes définies comme NUSI. L'accès à la ligne par NUSI est une opération tout ampli.

Créer un index secondaire non unique

L'exemple suivant crée NUSI sur la colonne FirstName de la table des employés.

CREATE INDEX(FirstName) on Employee;