SCROLL
Среднее время на прочтение: 1 мин.

MSSQL — получить размер таблиц в базе данных с помощью SQL запроса

Для анализа базы данных на предмет какие именно в ней тяжелые по размеру таблицы, можно выполнить запрос для вывода размера каждой таблице в базе данных.

Вместо [DATABASE_NAME] указываем целевую базу данных.

SQL
USE [DATABASE_NAME];
GO 
 
SELECT
  t.Name                                       AS TableName,
  s.Name                                       AS SchemaName,
  p.Rows                                       AS RowCounts,
  SUM(a.total_pages) * 8                       AS TotalSpaceKB,
  SUM(a.used_pages) * 8                        AS UsedSpaceKB,
  SUM(a.used_pages) * 8 /1024 		             AS UsedSpaceMB,
  SUM(a.used_pages) * 8 /1024/1024 		         AS UsedSpaceGB,
  (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
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
  LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE
  t.Name NOT LIKE 'dt%'
  AND t.is_ms_shipped = 0
  AND i.object_id > 255
GROUP BY
  t.Name, s.Name, p.Rows
ORDER BY
  UsedSpaceKB desc;
GO

Обсуждение

0 комментариев

Нет комментариев.