明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

sql server 2014 查询所有表记录的大小

Posted on 2025-08-19 16:42  且行且思  阅读(13)  评论(0)    收藏  举报

在 SQL Server 2014 中,如果你想查询所有表记录的大小,可以使用系统视图来获取这些信息。这通常涉及查询 sys.tablessys.partitionssys.allocation_units 等系统视图。下面是一个示例查询,它将帮助你获取每个表的大小(以KB为单位),包括数据大小和索引大小:

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.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.TYPE <> 'S' -- Exclude system tables
    AND i.TYPE <= 1 -- Only include objects that are user tables (1) and indexes (0)
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    TotalSpaceKB DESC;