Son aktivite 10 months ago

這段 SQL 查詢會列出指定資料庫中每個資料表的名稱、所屬 Schema、行數(Row Count)、總佔用空間(KB)、已使用空間(KB)以及未使用空間(KB),並依據總佔用空間進行降序排序。這對於 資料庫管理與最佳化 非常有用,能幫助 DBA 或開發人員分析表的大小、尋找可能需要清理或最佳化的表,提升資料庫效能。

Revizyon 32e6040f055a2efe4cde5c9add7574e8e0861d97

database_table_size_report.sql Ham
1USE [];
2SELECT
3 s.name AS SchemaName,
4 t.name AS TableName,
5 p.rows AS RowCounts,
6 SUM(a.total_pages) * 8 AS TotalSizeKB,
7 SUM(a.used_pages) * 8 AS UsedSizeKB,
8 (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSizeKB
9FROM
10 sys.tables t
11INNER JOIN
12 sys.schemas s ON t.schema_id = s.schema_id
13INNER JOIN
14 sys.partitions p ON t.object_id = p.object_id
15INNER JOIN
16 sys.allocation_units a ON p.partition_id = a.container_id
17WHERE
18 p.index_id IN (0,1) -- 0:堆積表, 1:群集索引
19GROUP BY
20 s.name, t.name, p.rows
21ORDER BY
22 TotalSizeKB DESC;
23