Comando DBCC CLEANTABLE
Ya he mencionado los Comandos DBCC de validación, iniciaré ahora con los comandos del grupo de mantenimiento, e iniciaré recordando, que este comando recupera el espacio de las columnas de longitud variable quitadas en tablas o vistas indexadas. Hay que recordar que una columna de longitud variable puede tener uno de los siguientes tipos de datos: varchar, nvarchar, varchar (max), nvarchar (max), varbinary, varbinary (max), texto, ntext, imagen, sql_variant, y xml. No indicaré las diferencias entre cada uno de los tipos de datos indicados, eso lo haremos en alguna otra ocasión.
La sintaxis
de este comando en su forma más simple es:
DBCC CLEANTABLE (database_name, [table_name]);
Que lleva a
cabo la recuperación de espacio en la tabla denominada table_name de base de
datos denominada database_name. Los nombres de base de datos y de tablas deben
seguir las reglas para los identificadores. Es posible que se utilice el número
de identificación de la base de datos (database_id) o de la tabla (table_id) o
de una vista (view_id) si se prefiere.
Es
importante indicar, 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 CLEANTABLE
(0, [table_name])
Lo anterior
indica que se lleve a cabo la recuperación de espacio de la tabla denominada table_name
en la base de datos indicada a través del comando USE.
Existen algunos
argumentos opcionales que pueden ser utilizados con el comando, estos son:
batch_size
|
Es el número de filas
procesadas por transacción. Si no se especifica, o si su valor es 0, la
instrucción procesa toda la tabla en una transacción.
|
WITH NO_INFOMSGS
|
Suprime todos los mensajes
de información.
|
Ejemplos de DBCC CLEANTABLE
Mostraré
algunos ejemplos de uso de este comando:
DBCC CLEANTABLE (db1,'Sche1.Table1', 0)
WITH NO_INFOMSGS;
El comando
anterior lleva cabo la recuperación de espacio en la base de datos db1 para la
tabla Sche1.Table1 en una sola transacción sin emitir mensajes, solo el mensaje
de terminación del comando.
DBCC CLEANTABLE (db1,'Sche1.Table1', 100)
WITH NO_INFOMSGS;
El comando
anterior lleva a cabo la recuperación de espacio, como el ejemplo anterior,
pero ahora lo hará en lotes de 100 renglones.
Comentarios
Este
comando no debe ejecutarse como una tarea de mantenimiento rutinaria. En lugar
de ello, debe utilizarse después de realizar cambios significativos en columnas
de longitud variable de una tabla o vista indizada, y hay que recuperar
inmediatamente el espacio sin utilizar. Como alternativa, puede volver a
generar los índices en la tabla o vista; no obstante, esta operación consume
mas recursos.
DBCC CLEANTABLE no se puede ejecutar como una transacción dentro de otra
transacción. Esta operación se registra por completo. DBCC CLEANTABLE no se
admite para su uso en tablas del sistema, tablas temporales o la parte de
índice de almacén de columnas optimizado en memoria xVelocity de una tabla.
No hay comentarios.:
Publicar un comentario