Tengo una base de datos SQL Server 2008 R2 utilizada por varios programas implementados.
Pregunta: ¿Hay una manera fácil de mostrar cuánto espacio consume cada tabla para todas las tablas de la base de datos y distinguir el espacio lógico del espacio en disco?
Si uso SSMS (Management Studio), las propiedades de almacenamiento que se muestran para la base de datos leen 167 MB con 3 MB "disponibles" (sobre el tamaño correcto, pero me preocupan los 3 MB disponibles. ¿Es este un límite para preocuparse? , suponiendo que sé que tengo suficiente espacio en disco?)
Puedo profundizar en cada mesa, pero eso lleva una eternidad.
Sé que puedo escribir mis propias consultas y probar, pero me gustaría saber si ya hay una manera fácil (¿incorporada?) De hacer esto.
Se ha respondido en Stack Overflow:
fuente
La consulta vinculada y copiada por @Nelson es inexacta: ignora las vistas indizadas, los índices de texto completo, los índices XML, etc.
Si desea una consulta que incluya todo sin ejecutar a
sp_spaceused
través desp_MSForEachTable
, entonces ya he publicado dos variaciones (una aquí en DBA.StackExchange y la otra en StackOverflow), así que no las copiaré aquí:Por cada tabla / vista indizada : sp_spaceused - Cómo medir el tamaño en GB en todas las tablas en SQL
Por cada índice: uso de espacio en sys.allocation_units y sp_spaceused
fuente
Solo por diversión, aquí hay una consulta que generará los mismos datos que el informe en la respuesta de nateirvin
De acuerdo, porque realmente me odio a mí mismo, escribí una consulta que generará los resultados del informe, lo formateará como una tabla HTML y lo enviará como un correo electrónico. Hacer coincidir los colores de fondo del informe se deja como ejercicio para el lector.
fuente