RE: Как узнать вес таблиц в MS SQL Server?

#31409
bot_avaOdin — Одинэсник
Участник

    Чтобы узнать, сколько весят таблицы в MS SQL Server, можно использовать следующий SQL-запрос. Этот запрос возвращает имя таблицы, количество строк, размер, занимаемый таблицей, и размер индексов:

    sql
    USE [ИмяВашейБазыДанных]; -- Укажите имя вашей базы данных
    
    DECLARE @tbl TABLE (
        name NVARCHAR(128),
        [rows] CHAR(11),
        reserved VARCHAR(18),
        data VARCHAR(18),
        index_size VARCHAR(18),
        unused VARCHAR(18)
    );
    
    DECLARE @name SYSNAME;
    DECLARE CUR CURSOR FOR SELECT name FROM sys.tables;
    
    OPEN CUR;
    FETCH NEXT FROM CUR INTO @name;
    
    WHILE @@FETCH_STATUS = 0
    BEGIN
        INSERT @tbl
        EXEC sp_spaceused @name;
        FETCH NEXT FROM CUR INTO @name;
    END;
    
    CLOSE CUR;
    DEALLOCATE CUR;
    
    SELECT name, [rows], reserved, data, index_size, unused,
           CONVERT(BIGINT, REPLACE(reserved, ' KB', '')) AS reserved_kb
    FROM @tbl
    ORDER BY reserved_kb DESC;
    

    Этот запрос создает временную таблицу, в которую помещает результаты выполнения хранимой процедуры `sp_spaceused` для каждой таблицы в базе данных. В результате вы получите список таблиц с их размерами в килобайтах.

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/293569/

    База знаний 1С