Comando DBCC DBREINDEX
Ya he mencionado, cuando vimos los Comandos DBCC de mantenimiento, que este comando vuelve a generar uno o varios índices para una tabla en la base de datos especificada. Sin embargo, se ha indicado por parte de Microsoft que este comando no se utilice en nuevos trabajos de desarrollo y se modifique lo antes posible las aplicaciones que actualmente utilizan el comando. Se sugiere que se use ALTER INDEX en su lugar.
No se admite el
uso de este comando DBCC DBREINDEX en los siguientes objetos:
·
Tablas
del sistema
·
Índices
espaciales
·
índices
de almacén de columnas optimizados de memoria xVelocity
La sintaxis
de este comando en su forma más simple es:
USE database_name;
GO
GO
DBCC
DBREINDEX ([table_name]);
En el comando
se indica que se lleve a cabo la generación de todos los índices de la tabla
denominada table_name, es importante recordar que los nombres de tablas deben
seguir las reglas para los identificadores.
Es
importante mencionar, que si bien muchos comandos DBCC registran actividad en
el Log de Microsoft SQL Server, este comando no
genera una entrada ya que no afecta el funcionamiento de la base de datos.
La sintaxis
que se usa más a menudo es:
USE database_name;
GO
GO
DBCC DBREINDEX ([table_name],
index_name);
En el
comando se indica el nombre de la tabla y el nombre del índice que se va a
recrear.
Existen
algunos argumentos opcionales que pueden ser utilizados con el comando, estos
son:
Fillfactor
|
Es el porcentaje de espacio
de cada página de índice que se utiliza para almacenar los datos cuando el
índice se crea o se vuelve a generar.
El valor de FILLFACTOR reemplaza el factor de relleno cuando se creó
el índice, se convierta en el nuevo valor predeterminado para el índice y
para cualquier otro índice no clúster vuelve a generar porque se vuelve a
generar un índice agrupado.
|
WITH NO_INFOMSGS
|
Suprime todos los
mensajes informativos con niveles de gravedad entre 0 y 10.
|
Ejemplos de DBCC CLEANTABLE
Mostraré
algunos ejemplos de uso de este comando:
USE db1;
GO
GO
DBCC DBREINDEX ('Sche1.Table1',
index_name, 0) WITH NO_INFOMSGS;
Este
comando vuelve a generar el índice denominado index_name de la table indicada,
tomando el valor de fillfactor en 0, equivalente a 100, sin emitir mensajes.
USE db1;
GO
GO
DBCC DBREINDEX ('Sche1.Table1', '', 80);
Este comando
vuelve a generar todos los índices de la tabla indicada, tomando el valor de
fillfactor en 80.
Comentarios
Al permitir
que los índices se vuelvan a generar dinámicamente, los índices que implementen
restricciones PRIMARY KEY o UNIQUE se pueden volver a generar sin tener que
quitar y volver a crear las restricciones. Esto significa que un índice puede
volver a generarse sin conocer la estructura de una tabla ni sus restricciones.
No hay comentarios.:
Publicar un comentario