He estado usando este script SQL (que obtuve de alguien, en algún lugar, no puedo reconstruir de quién vino) durante años y me ayudó bastante a comprender y determinar el tamaño de los índices y las tablas:
SELECT
t.name AS TableName,
i.name as indexName,
sum(p.rows) as RowCounts,
sum(a.total_pages) as TotalPages,
sum(a.used_pages) as UsedPages,
sum(a.data_pages) as DataPages,
(sum(a.total_pages) * 8) / 1024 as TotalSpaceMB,
(sum(a.used_pages) * 8) / 1024 as UsedSpaceMB,
(sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.object_id = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.name NOT LIKE 'dt%' AND
i.object_id > 255 AND
i.index_id <= 1
GROUP BY
t.name, i.object_id, i.index_id, i.name
ORDER BY
object_name(i.object_id)
Por supuesto, puede usar otros criterios de pedido, por ejemplo
ORDER BY SUM(p.rows) DESC
para obtener las tablas con más filas, o
ORDER BY SUM(a.total_pages) DESC
para obtener las tablas con la mayor cantidad de páginas (bloques de 8K) utilizadas.
SELECT OBJECT_SCHEMA_NAME(i.object_id) + '.' + OBJECT_NAME(i.object_id) AS TableName, ...
En SQL Server 2008, también puede ejecutar el informe estándar Uso de disco por tablas superiores. Esto se puede encontrar haciendo clic derecho en la base de datos, seleccionando Informes-> Informes estándar y seleccionando el informe que desee.
fuente
Esta consulta ayuda a encontrar la tabla más grande en su conexión.
fuente
También puede usar el siguiente código:
fuente
Si está utilizando Sql Server Management Studio 2008, hay ciertos campos de datos que puede ver en la ventana de detalles del explorador de objetos. Simplemente busque y seleccione la carpeta de tablas. En la vista de detalles, puede hacer clic con el botón derecho en los títulos de las columnas y agregar campos al "informe". Su millaje puede variar si está en SSMS 2008 express.
fuente
Esta consulta también me pareció muy útil en SqlServerCentral, aquí está el enlace a la publicación original
Tablas más grandes de SQL Server
En mi base de datos dieron resultados diferentes entre esta consulta y la primera respuesta.
Espero que alguien encuentre útil
fuente
La respuesta de @marc_s es muy buena y la he estado usando durante algunos años. Sin embargo, noté que el script pierde datos en algunos índices de almacén de columnas y no muestra una imagen completa. Por ejemplo, cuando lo hace
SUM(TotalSpace)
contra el script y lo compara con la propiedad de la base de datos de espacio total en Management Studio, los números no coinciden en mi caso (Management Studio muestra números más grandes). Modifiqué el script para superar este problema y lo extendí un poco:Espero que sea útil para alguien. Este script se probó en grandes bases de datos de TB con cientos de tablas, índices y esquemas diferentes.
fuente