Мне нужно знать, сколько дискового пространства таблица использует в SQL Server

Я думаю, что большинство людей знают, как сделать это через графический интерфейс (таблица правого клика, свойства), но делать это в T-SQL совершенно бесполезно.

5.08.2008 19:10:52
3 ОТВЕТА
РЕШЕНИЕ
CREATE TABLE #tmpSizeChar (
     table_name sysname,
     row_count int,
     reserved_size varchar (50),
     data_size varchar (50),
     index_size varchar (50),
     unused_size varchar (50))                              

CREATE TABLE #tmpSizeInt (
     table_name sysname,
     row_count int,
     reserved_size_KB int,
     data_size_KB int,
     index_size_KB int,
     unused_size_KB int)   

ВКЛЮЧИТЬ СЧЕТ
INSERT #tmpSizeChar
EXEC sp_msforeachtable 'sp_spaceused' '?' ''     

INSERT INTO #tmpSizeInt (
        table_name,
        row_count,
        reserved_size_KB,
        data_size_KB,
        index_size_KB,
        unused_size_KB
        )
SELECT [имя_таблицы],
        row_count,
        CAST (SUBSTRING (reserved_size, 0, PATINDEX ('%%', reserved_size)) AS int) reserved_size,
        CAST (SUBSTRING (data_size, 0, PATINDEX ('%%', data_size)) AS int) data_size,
        CAST (SUBSTRING (index_size, 0, PATINDEX ('%%', index_size)) AS int) index_size,
        CAST (SUBSTRING (unused_size, 0, PATINDEX ('%%', unused_size)) AS int) unused_size
FROM #tmpSizeChar   

/ *
DROP TABLE #tmpSizeChar
DROP TABLE #tmpSizeInt
* /

SELECT * FROM #tmpSizeInt
ORDER BY reserved_size_KB DESC
13
5.08.2008 19:11:11
Отлично. Как раз то, что мне было нужно. Спасибо! Хорошо, чтобы ОП пометил это как правильный ответ.
Andrew 22.07.2011 06:38:14

Проверьте это, я знаю, что это работает в 2005 году ( документация Microsoft ):

Вот для пабов БД


select *
from pubs.sys.database_files

Возвращает размер и max_size.

0
10.04.2019 12:40:57

sp_spaceused tableName

где tableName - это имя таблицы, которую вы хотите знать ....

0
14.01.2016 16:40:56