¿Cómo puede saber qué tablas ocupan más espacio en una base de datos de SQL Server 2005?
Estoy seguro de que hay algún procedimiento almacenado en el sistema que muestra esta información.
Tengo una base de datos TEST que creció de 1 tb a 23 tb. Actualmente estamos haciendo muchas pruebas de conversión de clientes en la base de datos, lo que implica ejecutar el mismo procedimiento almacenado de conversión varias veces. Elimina, lo que estoy seguro de que aumenta el registro de transacciones. Pero esto me hizo pensar en hacer esta pregunta.
info
el gran problema es la tabla dbo.Download, crea un almacenamiento masivo que en realidad no es necesario, tenía 3GB antes de truncarlo, luego 52MB;)
sql-server
sql-server-2005
Gerhard Weiss
fuente
fuente
Respuestas:
Pruebe este script: enumerará el número de filas y el espacio utilizado por las filas de datos (y el espacio total utilizado) para todas las tablas en su base de datos:
fuente
SELECT @@VERSION
para averiguarlo) ¿Qué nivel de compatibilidad de base de datos tiene su base de datos?Utilice sp_spacedUsed
Exec sp_spaceused N'YourTableName'
O si desea ejecutar el
sp_spaceused
para cada tabla en su base de datos, puede usar este SQL:El SQL anterior es de aquí
fuente
exec sp_msforeachtable 'exec sp_spaceused N''?'''
sp_msforeachtable
existe desde al menos SQl Server 2000sp_msforeachtable 'sp_spaceused [?]'
si lo desea. Verificado de nuevo a SQL2000.El comentario de Rossisdead respondió a esta pregunta lo mejor para mí, desearía que no estuviera enterrado en un comentario. Esto será útil para personas como yo que no intentan escribir la solución (el OP no solicitó un fragmento de código)
fuente
Gracias a @marc_s por la respuesta. Necesitaba saber los datos frente al espacio de índice, así que seguí adelante y amplié la consulta para incluir eso.
fuente