如何查看sqlserver中数据库存储空间
时间: 2024-02-25 17:51:30 浏览: 131
如何查看SQLServer数据库每个表占用的空间大小
您可以使用以下 SQL 查询语句来查看 SQL Server 中数据库的存储空间:
```
USE [your_database_name]
GO
EXEC sp_spaceused
```
这将返回一个结果集,其中包括以下信息:
- 数据库名称
- 数据库大小(以 KB 为单位)
- 未使用空间大小(以 KB 为单位)
- 已使用空间大小(以 KB 为单位)
- 数据库中所有对象的行数
- 数据库中所有对象的未使用空间大小(以 KB 为单位)
- 数据库中所有对象的已使用空间大小(以 KB 为单位)
此外,您还可以使用以下查询语句来查看每个表的大小:
```
USE [your_database_name]
GO
SELECT t.NAME AS TableName, s.Name AS SchemaName, p.rows AS RowCounts,
SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
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 i.OBJECT_ID > 255
GROUP BY t.Name, s.Name, p.Rows
ORDER BY TotalSpaceMB DESC
```
这将返回每个表的以下信息:
- 表名
- 架构名称
- 行数
- 总空间大小(以 KB 和 MB 为单位)
- 已使用空间大小(以 KB 和 MB 为单位)
- 未使用空间大小(以 KB 和 MB 为单位)
请注意,上述查询语句中的 `[your_database_name]` 应替换为您要查询的实际数据库名称。
阅读全文