查看 SQL Server 服务器中数据库占用空间
有一个 ERP 的生产环境需要进行每天例行的数据备份,某天看了下,压缩后的 SQL Server 数据库备份文件大小居然已经 190G 了。很好奇这个数据库是什么情况,这也才上线 3 年多,怎么这么大的数据量呢?查了下,可以用如下命令查询:
-- 数据库占用空间 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);