Я использовал этот SQL-скрипт (который я получил от кого-то, где-то - не могу восстановить, от кого он был) целую вечность, и он помог мне немного понять и определить размер индексов и таблиц:
SELECT
t.name AS TableName,
i.name as indexName,
sum(p.rows) as RowCounts,
sum(a.total_pages) as TotalPages,
sum(a.used_pages) as UsedPages,
sum(a.data_pages) as DataPages,
(sum(a.total_pages) * 8) / 1024 as TotalSpaceMB,
(sum(a.used_pages) * 8) / 1024 as UsedSpaceMB,
(sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.object_id = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.name NOT LIKE 'dt%' AND
i.object_id > 255 AND
i.index_id <= 1
GROUP BY
t.name, i.object_id, i.index_id, i.name
ORDER BY
object_name(i.object_id)
Конечно, вы можете использовать другие критерии заказа, например
ORDER BY SUM(p.rows) DESC
чтобы получить таблицы с наибольшим количеством строк, или
ORDER BY SUM(a.total_pages) DESC
чтобы получить таблицы с наибольшим количеством страниц (8K блоков).
SELECT OBJECT_SCHEMA_NAME(i.object_id) + '.' + OBJECT_NAME(i.object_id) AS TableName, ...
В SQL Server 2008 вы также можете просто запустить стандартный отчет Использование диска по верхним таблицам. Это можно найти, щелкнув правой кнопкой мыши БД, выбрав Отчеты-> Стандартные отчеты и выбрав нужный отчет.
источник
Этот запрос поможет найти самую большую таблицу в вашей сети.
источник
Вы также можете использовать следующий код:
источник
Если вы используете Sql Server Management Studio 2008, существуют определенные поля данных, которые можно просмотреть в окне сведений об обозревателе объектов. Просто найдите и выберите папку таблиц. В подробном представлении вы можете щелкнуть правой кнопкой мыши заголовки столбцов и добавить поля в «отчет». Ваш пробег может отличаться, если вы работаете в SSMS 2008 Express.
источник
Я нашел этот запрос также очень полезным в SqlServerCentral, вот ссылка на оригинальный пост
Sql Server самые большие таблицы
В моей базе данных они дали разные результаты между этим запросом и первым ответом.
Надеюсь, кто-то найдет полезным
источник
Ответ @ marc_s очень хорош, и я использую его уже несколько лет. Однако я заметил, что скрипт пропускает данные в некоторых индексах columnstore и не показывает полную картину. Например, когда вы
SUM(TotalSpace)
используете сценарий и сравниваете его со свойством базы данных общего пространства в Management Studio, в моем случае числа не совпадают (Management Studio показывает большие числа). Я изменил скрипт, чтобы преодолеть эту проблему и немного расширил его:Надеюсь, это будет полезно для кого-то. Этот скрипт был протестирован с большими базами данных TB с сотнями различных таблиц, индексов и схем.
источник