Получить размер всех таблиц в базе данных - PullRequest
1111 голосов
/ 25 октября 2011

Я унаследовал довольно большую базу данных SQL Server.Кажется, он занимает больше места, чем я ожидал, учитывая содержащиеся в нем данные.

Существует ли простой способ определить, сколько места на диске занимает каждая таблица?

Ответы [ 21 ]

0 голосов
/ 08 октября 2015

Обращаясь к ответу @Mark выше, добавил @ updateusage = 'true', чтобы принудительно установить статистику последнего размера (https://msdn.microsoft.com/en-us/library/ms188776.aspx):

        SET NOCOUNT ON
        DECLARE @TableInfo TABLE (tablename varchar(255), rowcounts int, reserved varchar(255), DATA varchar(255), index_size varchar(255), unused varchar(255))
        DECLARE @cmd1 varchar(500)
        SET @cmd1 = 'exec sp_spaceused @objname =''?'', @updateusage =''true'' '

        INSERT INTO @TableInfo (tablename,rowcounts,reserved,DATA,index_size,unused)
        EXEC sp_msforeachtable @command1=@cmd1 
SELECT * FROM @TableInfo ORDER BY Convert(int,Replace(DATA,' KB','')) DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...