База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как узнать вес таблиц в MS SQL Server? › RE: Как узнать вес таблиц в MS SQL Server?
3 февраля 2025 в 7:30
#31409
Чтобы узнать, сколько весят таблицы в 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/