sqlserver查看数据库各个表占用大小
时间: 2023-09-03 22:03:35 浏览: 144
要查看SQL Server数据库中各个表的大小,可以使用以下方法。
方法一:使用系统存储过程
1. 打开SQL Server Management Studio (SSMS),连接到目标数据库。
2. 在查询窗口中运行以下命令:
```
EXEC sp_MSforeachtable 'EXEC sp_spaceused ''?'''
```
该命令会运行系统存储过程`sp_spaceused`,并对每个表执行该存储过程。执行完毕后,会显示每个表的大小信息,包括表名、行数、已分配空间、未使用空间等。
方法二:使用动态管理视图
1. 打开SQL Server Management Studio (SSMS),连接到目标数据库。
2. 在查询窗口中运行以下命令:
```
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.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
TotalSpaceKB DESC
```
该命令会查询系统的动态管理视图以获取每个表的大小信息。执行完毕后,会按照表的总空间大小进行排序,并显示表名、架构名、行数、总空间、已使用空间和未使用空间等信息。
无论是使用系统存储过程还是动态管理视图,都可以方便地查看SQL Server数据库中各个表的占用大小信息,以便进行存储空间管理和性能优化。
阅读全文