Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


microsoft-sql-server:t-sql-script-samples:how-to-find-largest-tables-in-sql-server-database

Как узнать самые большие таблицы в базе данных 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;

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

  • table - имя таблицы с именем схемы
  • used_mb - размер пространства, фактически используемого таблицей в МБ
  • allocated_mb - размер выделенного или зарезервированного этой таблицей пространства в МБ

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

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

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



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

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

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

Обсуждение

Ваш комментарий:
 
microsoft-sql-server/t-sql-script-samples/how-to-find-largest-tables-in-sql-server-database.txt · Последнее изменение: 11.12.2024 09:14 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki