63 - Regenerar índices


Vimos que para crear índices empleamos la instrucción "create index".

Empleando la opción "drop_existing" junto con "create index" permite regenerar un índice, con ello evitamos eliminarlo y volver a crearlo. La sintaxis es la siguiente:

 create TIPODEINDICE index NOMBREINDICE
 on TABLA(CAMPO)
 with drop_existing;

También podemos modificar alguna de las características de un índice con esta opción, a saber:

- tipo: cambiándolo de no agrupado a agrupado (siempre que no exista uno agrupado para la misma tabla). No se puede convertir un índice agrupado en No agrupado.

- campo: se puede cambiar el campo por el cual se indexa, agregar campos, eliminar algún campo de un índice compuesto.

- único: se puede modificar un índice para que los valores sean únicos o dejen de serlo.

En este ejemplo se crea un índice no agrupado para el campo "titulo" de la tabla "libros":

 create nonclustered index I_libros
 on libros(titulo);

Regeneramos el índice "I_libros" y lo convertimos a agrupado:

 create clustered index I_libros
 on libros(titulo)
 with drop_existing;

Agregamos un campo al índice "I_libros":

 create clustered index I_libros
 on libros(titulo,editorial)
 with drop_existing;

Esta opción no puede emplearse con índices creados a partir de una restricción "primary key" o "unique".


Retornar