Obtener el tamaño de un registro en SQL Server

Recientemente me han preguntado sobre como obtener el tamaño de un registro en una base de datos, aunque no es exacto podemos determinar el valor aproximado de la siguiente manera.

  1. Al crear una tabla especificamos el tipo de dato y tamaño para cada campo, con la consulta abajo vamos a obtener estos tamaños de cada columna y sumarlos para cada tabla creada por el usuario en la base de datos.

    SELECT sys.objects.name AS [Nombre de la tabla],
    SUM(sys.all_columns.max_length) AS [Row Size]
    FROM sys.all_columns
    JOIN sys.objects ON sys.all_columns.object_id = sys.objects.object_id
    WHERE sys.objects.type = ‘U’
    GROUP BY sys.objects.name
  2. Ahora vamos a enfocarnos en una tabla en concreto y vamos a determinar el espacio utilizado por esta tabla usando el procedimiento almacenado.
    EXEC sp_spaceused ‘<Nombre de la Tabla>’
  3. Luego del resultado de la ejecución del procedimiento anterior multiplique el valor de la columna «Data» por 1024 para calcular el tamaño en bytes, y divida el tamaño en bytes por el valor de la columna «Row Size» de la respectiva tabla obtenido en el primer script para calcular el número medio de bytes por fila.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.