Metrika

14 января 2011 г.

T-SQL: Размер таблиц в БД

Скрипт отображает следующие колонки:
  1. name - название таблицы;
  2. rows - количество строк в таблице;
  3. reserved - место, которое выделено под таблицу;
  4. data - место, которое занимают данные в таблице;
  5. index_size - место, которое занимают индексы таблицы
  6. 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

1 комментарий :