PREGUNTAS Y RESPUESTAS-Obtener espacio utilizado por mis tablas

PREGUNTA: Como puedo saber cual es el espacio utilizado por todas mis tablas en una base de datos

RESPUESTA:

NOTA: En todo los artículos del blog, haciendo clic en la imagen obtendrás información ampliada sobre los temas tratados.

Una respuesta inmediata sería recomendar el uso del procedimiento almacenado del sistema sp_spaceused (). Pero, si usamos este procedimiento almacenado para obtener información de tablas, tenemos que usarlo para una tabla a la vez. He encontrado artículos al respecto y sugieren crear un programa que liste todas las tablas de la base de datos para luego hacer un rulo (loop) por cada tabla, pasando el nombre del objeto al procedimiento almacenado sp_spaceused en un query dinámico, almacenar cada pasada del rulo en una tabla temporal y por ultimo listar la tabla resultante.

Muy complicado!

Para saber cuanto registros tienen tus tabla e información detallada de el espacio que ocupan, solo tienes que ejecutar el simple query que presento a continuación.

NOTAS:

  • El ejemplo mostrado aplica para SQL Server 2005 o mayor.
  • Estoy usando CTE (Common Table Expresión ) que sí genera un conjunto de datos temporal, pero en el mismo Batch, de modo que no hay que definir un objeto tabla temporal.
  • Si tienes tablas con campos e índices XML y requieres información muy precisa, alli sí recomiendo el uso de sp_spaceused, ya que en ese procedimiento almacenado se hacen algunos cálculos especiales requeridos para obtener de forma precisa el espacio utilizado cuando se usa XML.

Aqui el query: (hacer clic en la imagen para obtener el script->)

3 comentarios en “PREGUNTAS Y RESPUESTAS-Obtener espacio utilizado por mis tablas

Deja un comentario

Tu dirección de correo electrónico no será publicada.