Как узнать самые большие таблицы в базе данных SQL Server

Запрос ниже выводит список десяти крупнейших таблиц в базе данных:

SELECT top 10 schema_name(tab.schema_id) + '.' + tab.name as [table], 
    cast(sum(spc.used_pages * 8)/1024.00 as numeric(36, 2)) as used_mb,
    cast(sum(spc.total_pages * 8)/1024.00 as numeric(36, 2)) as allocated_mb
FROM sys.tables tab
JOIN sys.indexes ind 
     on tab.object_id = ind.object_id
JOIN sys.partitions part 
     on ind.object_id = part.object_id and ind.index_id = part.index_id
JOIN sys.allocation_units spc
     on part.partition_id = spc.container_id
GROUP BY schema_name(tab.schema_id) + '.' + tab.name
ORDER BY sum(spc.used_pages) desc;

Выводимые столбцы:

Выводимые строки:

Каждая строка представляет отдельную таблицу. Всего выводится десять таблиц, которые используют больше всего пространства. Упорядочено по фактически используемому пространству.

Пример результатов:



Проверено на следующих конфигурациях:

Версия SQL Server
SQL Server 2019 Standard Edition

Автор первичной редакции:
Алексей Максимов
Время публикации: 11.12.2024 09:09