本文介绍查看RDS SQL Server实例、数据库及表的空间大小的方法。
查看实例空间的大小
在RDS控制台基本信息页面查看实例空间情况。
查看数据库的大小
使用客户端连接实例。具体操作,请参见连接SQL Server实例。
查看单个数据库的空间使用情况,命令如下:
USE <数据库名>; GO EXEC sp_spaceused @updateusage = N'TRUE';
参数
说明
database_size
数据库总大小,包含数据和日志文件总和。该值始终大于
reserved
+unallocated space
。unallocated space
数据库的未分配空间。
reserved
已分配的空间总量。
data
实际数据占用的空间大小。
index_size
索引占用的空间大小。
unused
已分配但未使用的空间。
查看所有数据库的空间使用情况,命令如下:
USE master GO DECLARE @insSize TABLE(dbName sysname,checkTime VARCHAR(19),dbSize VARCHAR(50),logSize VARCHAR(50)) INSERT INTO @insSize ( dbName, checkTime, dbSize, logSize ) EXEC sp_msforeachdb 'select ''?'' dbName,CONVERT(VARCHAR(19),GETDATE(),120) checkTime,LTRIM(STR(SUM(CASE WHEN RIGHT(FILENAME,3)<>''ldf'' THEN convert (dec (15,2),size) * 8 / 1024 ELSE 0 END),15,2)+'' MB'') dbSize, LTRIM(STR(SUM(CASE WHEN RIGHT(FILENAME,3)=''ldf'' THEN convert (dec (15,2),size) * 8 / 1024 ELSE 0 END),15,2)+'' MB'') logSize from ?.dbo.sysfiles' SELECT * FROM @insSize ORDER BY CONVERT(DECIMAL,LTRIM(RTRIM(SUBSTRING(dbSize,1,LEN(dbSize)-2)))) DESC
该结果未包含日志文件的大小,查看日志文件大小的命令如下:
DBCC SQLPERF(LOGSPACE);
查看数据库中表的大小
使用客户端连接实例。具体操作,请参见连接SQL Server实例。
查看数据库中单个表大小,命令如下:
USE <数据库名>; GO EXEC sp_spaceused N'<表名>';
查看数据库中所有表大小,命令如下:
USE <数据库名>; GO DECLARE @tabSize TABLE ( name NVARCHAR(100), rows CHAR(20), reserved VARCHAR(18), data VARCHAR(18), index_size VARCHAR(18), unused VARCHAR(18) ); INSERT INTO @tabSize EXEC sp_MSForEachTable ' EXEC sp_spaceused ''?'''; SELECT * FROM @tabSize ORDER BY CONVERT(INT, REPLACE(data, ''KB'', '''')) DESC, 2 DESC;