- name - название таблицы;
- rows - количество строк в таблице;
- reserved - место, которое выделено под таблицу;
- data - место, которое занимают данные в таблице;
- index_size - место, которое занимают индексы таблицы
- unused - место, которое пока не используется
create table #t
(
name varchar(500),
rows bigint,
reserved varchar(50),
data varchar(50),
index_size varchar(50),
unused varchar(50)
)
declare @t_name varchar(500)
DECLARE t_cursor CURSOR
FOR select name from sysobjects where xtype = 'U' order by name
OPEN t_cursor
FETCH NEXT FROM t_cursor INTO @t_name;
WHILE @@FETCH_STATUS = 0
BEGIN
insert into #t exec sp_spaceused @t_name
FETCH NEXT FROM t_cursor INTO @t_name;
END
CLOSE t_cursor;
DEALLOCATE t_cursor;
select name, rows, cast(left(reserved, len(reserved)-2) as bigint)/1024.0 reserved,
cast(left(data, len(data)-2) as bigint)/1024.0 data, cast(left(index_size, len(index_size)-2) as bigint)/1024.0 index_size,
cast(left(unused, len(unused)-2) as bigint)/1024.0 unused
from #t order by reserved desc
Спасибо, очень пригодился.
ОтветитьУдалить