查看 SQL Server 服务器中数据库占用空间
有一个 ERP 的生产环境需要进行每天例行的数据备份,某天看了下,压缩后的 SQL Server 数据库备份文件大小居然已经 190G 了。很好奇这个数据库是什么情况,这也才上线 3 年多,怎么这么大的数据量呢?查了下,可以用如下命令查询:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | -- 数据库占用空间 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); |