Comandos DBCC
Las
personas que iniciamos en las actividades de administración de Microsoft SQL Server, siempre
nos enfrentamos con la necesidad de llevar a cabo comprobaciones de las bases
de datos que están actualmente en el servidor y hemos oído de los comandos DBCC,
pero que son realmente estos comandos.
No pretendo copiar o sustituir la documentación de Microsoft SQL Server al respecto, simplemente deseo hacer un recuento de los comandos y apoyar el uso de estos.
Iniciemos
definiendo que son estos comandos, DBCC
son las siglas de Database Console Commands
que se han desarrollado para SQL Server, aunque el que más se conoce es DBCC
CHECKDB que nos ayuda a validar la consistencia de la base de datos, existen
una serie de comandos que pueden ser clasificados en las siguientes categorías:
Categoría |
Acciones |
Mantenimiento
|
Tareas de mantenimiento en las bases
de datos, los índices o los grupos de archivos.
|
Varios
|
Tareas varias como habilitar marcas de
seguimiento o quitar una DLL de la memoria.
|
Informativa
|
Tareas que recopilan y muestran
diversos tipos de información.
|
Validación
|
Operaciones de validación en una base
de datos, tabla, índice, catálogo, grupo de archivos o asignación de páginas
de base de datos.
|
Los
comandos que se engloban es las categorías anteriormente indicadas reciben parámetros,
algunos por omisión, y devuelven valores específicos de acuerdo con las características
del comando.
Es importante indicar que toda la actividad de los comandos DBCC queda registrada en el Log de Microsoft SQL Server, por lo que si el comando se ejecuta correctamente, se indicara en el registro correspondiente. Sin embargo, si se detecta un error en la ejecución se encontrará un archivo de volcado denominado SQLDUMPnnn.txt (nnn se refiere a un consecutivo), que se localizara en el directorio:
“\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Log”
donde el directorio denominado "MSSQLxx.MSSQLSERVER" esta formado por la version de Microsoft SQL Server y el nombre de la instancia, correspondiente, de tal forma que xx es la versión de Microsoft SQL Server y en este caso se ha indicado la instancia de default MSSQLSERVER, será necesario sustituir éste por el nombre de la instancia correspondiente.
Recuérdese que hablamos de varios tipos de comandos, por lo que no todos los comandos podrán generar un registro de error, ya que algunos son informativos.
Iniciare la discusión de los comandos DBCC de la categoría Validación, que es donde se encuentra el comando DBCC CHECKDB que se ha mencionado anteriormente.
Comandos de validación DBCC
Los comandos que se incluyen en esta categoría son:Comando DBCC |
Descripción |
Comprueba la
coherencia de las estructuras de asignación de espacio en disco de una base
de datos determinada.
|
|
Comprueba la
asignación y la integridad estructural de todas las tablas y vistas indizadas
en el grupo de archivos especificado de la base de datos actual.
|
|
Comprueba la
coherencia del catálogo en la base de datos especificada. La base de datos
debe estar en línea.
|
|
Comprueba el valor
de identidad actual de la tabla especificada en SQL Server y, si fuera
necesario, lo cambia.
|
|
Comprueba la
integridad de una restricción especificada o de todas las restricciones de
una tabla determinada en la base de datos actual.
|
|
Comprueba la
integridad de todas las páginas y estructuras que constituyen la tabla o
vista indizada.
|
|
Comprueba la
integridad física y lógica de todos los objetos de la base de datos
especificada.
|
Es
importante mencionar que estos comandos operan en una instantánea de la base de
datos interna de solo lectura que crea el Motor de base de datos. Así se evitan
problemas de bloqueo y simultaneidad cuando se ejecutan estos comandos. Sin embargo,
es necesario indicar que esta situación no siempre es necesaria ya que si la
base de datos está en línea se ejecuta en tiempo real y solo se lleva a cabo el
bloqueo de las tablas en su momento, para asegurar la coherencia de los objetos
a comprobar.
Comandos de mantenimiento DBCC
Los comandos que se incluyen en esta categoría son:Comando DBCC |
Descripción |
Recupera el espacio
de las columnas de longitud variable quitadas en tablas o vistas indizadas.
|
|
Desfragmenta los
índices de la tabla o la vista especificada.
|
|
Vuelve a generar uno
o varios índices para una tabla en la base de datos especificada.
|
|
Reduce el tamaño de
los archivos de datos y de registro de la base de datos especificada.
|
|
Quita todos los
búferes borrados del grupo de búferes y los objetos de almacén de columnas
desde el grupo de objetos de almacén de columnas.
|
|
Puede reducir un
archivo a un tamaño menor que el tamaño especificado cuando se creó.
|
|
Quita todos los
elementos de la memoria caché del plan, quita un plan concreto de la misma
especificando un identificador de plan o un identificador SQL, o quita todas
las entradas de caché asociadas a un grupo de recursos de servidor
especificado.
|
|
Informa sobre
imprecisiones de recuento de filas y páginas de las vistas de catálogo y las
corrige.
|
Estos
comandos son muy utilizados en operaciones de mantenimiento de las instancias y
bases de datos, ya que como puede verse nos ayudan a realizar limpieza,
recuperación de espacios y regeneraciones que son necesarios en la
administración.
Comandos informativos DBCC
Los comandos que se incluyen en esta categoría son:Comando DBCC |
Descripción |
DBCC INPUTBUFFER
|
Muestra la última
instrucción enviada desde el cliente a una instancia de Microsoft SQL Server.
|
DBCC SHOWCONTIG
|
Muestra información
sobre la fragmentación de los datos y los índices de la tabla o vista
especificada.
|
DBCC OPENTRAN
|
Ayuda a identificar
las transacciones activas que pueden evitar el truncamiento del registro.
|
DBCC SQLPERF
|
Proporciona
estadísticas de uso del espacio del registro de transacciones para todas las
bases de datos.
|
DBCC OUTPUTBUFFER
|
Devuelve el búfer de
salida actual en formato hexadecimal y ASCII para el elemento especificado
session_id.
|
DBCC TRACESTATUS
|
Muestra el estado de
las marcas de seguimiento, asociado con los comandos varias DBCC TRANCEON y
DBCC TRACEOFF
|
DBCC PROCCACHE
|
Muestra información
acerca de la caché de procedimientos en forma de tabla.
|
DBCC USEROPTIONS
|
Devuelve las
opciones SET activas para la conexión actual.
|
DBCC SHOW_STATISTICS
|
Muestra las
estadísticas de optimización de consulta actuales de una tabla o vista
indizada.
|
Como se
puede observar, son comandos que nos brindan información que apoyan las
actividades de administración de las instancias y bases de datos.
Comandos varios DBCC
Los comandos que se incluyen en esta categoría son:Comando DBCC |
Descripción |
Descarga el
procedimiento almacenado extendido especificado DLL de la memoria.
|
|
DBCC HELP
|
Devuelve información
de la sintaxis del comando DBCC especificado.
|
Vacía la caché de
autenticación de base de datos que contiene información sobre los inicios de
sesión y las reglas de firewall para la base de datos de usuario actual en
Base de Datos.
|
|
Deshabilita las
marcas de seguimiento especificados.
|
|
Vaciados de la caché
de conexión de consulta distribuida utilizada por las consultas distribuidas
en una instancia de Microsoft SQL Server.
|
|
Habilita las marcas
de seguimiento especificadas.
|
|
Libera todas las
entradas de caché no utilizadas de todas las memorias caché.
|
|
Crea una nueva base
de datos que contiene el esquema de todos los objetos y estadísticas de la
base de datos de origen especificada.
|
Se observa
que estos comandos son utilizados para apoyo de los comandos previamente
indicados.
Llevare a
cabo un pequeño análisis de cada uno de los comandos DBCC en posteriores
entregas.
Conclusión
Microsoft SQL Server desde la aparición de la versión 6.0 en 1996, ha incorporado las facilidades administrativas a través de comandos, con la finalidad de que los administradores puedan apoyarse en sus actividades y mantengan la operatividad de las bases de datos.
Los comandos que aquí se han indicado, forman parte de ese objetivo, hasta la fecha estos comandos han ofrecido la funcionalidad requerida, no es posible saber si en un futuro habrá mas comandos, o se eliminaran otros, lo que si es seguro, es que sabiendo utilizar los anteriores comandos, un administrador de bases de datos, contará con las herramientas para garantizar la operatividad de las bases de datos a su cargo.
No hay comentarios.:
Publicar un comentario