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

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 целое) SET NOCOUNT ON ВСТАВИТЬ ИГНОРИРУЙТЕ #tmpSizeChar EXEC sp_msforeachtable 'sp_spaceused ''?' '' ВСТАВИТЬ ИГНОРИРУЙТЕ INTO #tmpSizeInt ( table_name, row_count, reserved_size_KB, data_size_KB, index_size_KB, unused_size_KB ) SELECT [table_name], row_count, CAST (SUBSTRING (reserved_size, 0, PATINDEX ( '%%', reserved_size)) КАК 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)) КАК Int) unused_size ОТ #tmpSizeChar / * DROP TABLE #tmpSizeChar DROP TABLE #tmpSizeInt * / SELECT * FROM #tmpSizeInt ORDER BY DESC reserved_size_KB
голоса 0
0
sp_spaceused TABLENAME
где TABLENAME это имя таблицы, которую вы хотите знать ....
голоса 0
0
Проверьте это, я знаю , что это работает в 2005 году ( MSDN Doc ):
Здесь для пабов DB
select *
from pubs.sys.database_files
Возвращает размер и MAX_SIZE.