Teradata - Índice secundario
Una tabla puede contener solo un índice principal. Más a menudo, se encontrará con escenarios en los que la tabla contiene otras columnas, mediante las cuales se accede con frecuencia a los datos. Teradata realizará un escaneo completo de la tabla para esas consultas. Los índices secundarios resuelven este problema.
Los índices secundarios son una ruta alternativa para acceder a los datos. Existen algunas diferencias entre el índice primario y el índice secundario.
El índice secundario no participa en la distribución de datos.
Los valores de índice secundarios se almacenan en subtablas. Estas tablas están integradas en todos los AMP.
Los índices secundarios son opcionales.
Se pueden crear durante la creación de la tabla o después de que se crea una tabla.
Ocupan espacio adicional ya que construyen sub-tablas y también requieren mantenimiento ya que las sub-tablas necesitan actualizarse para cada nueva fila.
Hay dos tipos de índices secundarios:
- Índice secundario único (USI)
- Índice secundario no exclusivo (NUSI)
Índice secundario único (USI)
Un índice secundario único permite solo valores únicos para las columnas definidas como USI. Acceder a la fila por USI es una operación de dos amperios.
Crear índice secundario único
El siguiente ejemplo crea USI en la columna EmployeeNo de la tabla de empleados.
CREATE UNIQUE INDEX(EmployeeNo) on employee;
Índice secundario no único (NUSI)
Un índice secundario no exclusivo permite valores duplicados para las columnas definidas como NUSI. El acceso a la fila por NUSI es una operación de amplificador total.
Crear índice secundario no exclusivo
El siguiente ejemplo crea NUSI en la columna FirstName de la tabla de empleados.
CREATE INDEX(FirstName) on Employee;