查看 SQL Server 服务器中数据库占用空间
- 发布
- 修订
- 未修订
- 字数
- 300
- 阅读
- 1 分钟
有一个 ERP 的生产环境需要进行每天例行的数据备份,某天看了下,压缩后的 SQL Server 数据库备份文件大小居然已经 190G 了。很好奇这个数据库是什么情况,这也才上线 3 年多,怎么这么大的数据量呢?查了下,可以用如下命令查询:
sql
-- 数据库占用空间
EXEC sp_spaceused
-- 查询当前数据库中所有表的大小,如行数、数据量、占用磁盘空间等
SELECT
TableName = obj.name,
TotalRows = prt.rows,
[DataSize(KB)]=SUM(alloc.data_pages)*8, --这里返回的是数据页个数,1页是8K,所以乘以8
[DataSize(MB)]=SUM(alloc.data_pages)*8/1024.0,
[DataSize(GB)]=SUM(alloc.data_pages)*8/1024.0/1024.0,
[SpaceUsed(KB)] = SUM(alloc.used_pages)*8,--这里返回的是数据页个数,1页是8K,所以乘以8
[SpaceUsed(MB)] = SUM(alloc.used_pages)*8/1024.0,
[SpaceUsed(GB)] = SUM(alloc.used_pages)*8/1024.0/1024.0
FROM sys.objects obj
JOIN sys.indexes idx ON obj.object_id = idx.object_id
JOIN sys.partitions prt ON obj.object_id = prt.object_id
JOIN sys.allocation_units alloc ON alloc.container_id = prt.partition_id
WHERE obj.type = 'U' AND idx.index_id IN (0, 1)
GROUP BY obj.name, prt.rows
ORDER BY TotalRows DESC
-- 查询服务器上各数据库日志文件的大小及利用率
DBCC SQLPERF(LOGSPACE);
评论
正在载入评论…