开发者社区> 问答> 正文

【RDS】RDS SQL Server如何查看实例、数据库及表占用的空间大小呢?

已解决

RDS SQL Server如何查看实例、数据库及表占用的空间大小呢?

展开
收起
云上猫猫 2022-01-14 15:16:46 1114 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    查看实例空间的大小

    登录RDS控制台,在基本信息页面查看实例空间情况。

    1.png

    查看数据库的大小

    1、使用客户端连接实例,关于如何连接实例,请参见连接实例

    2、在SQL窗口中执行如下SQL语句。

    use [$DB]
    go
    sp_spaceused @updateusage=N'true'
    

    注:[$DB]为数据库的库名。

    系统显示类似如下。

    2.png

    提示:字段介绍如下所示。

    3.jpg

    3、查看所有的数据库,则需要使用脚本来实现,脚本如下所示。

    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
    

    该输出结果包含日志文件的大小,查看日志文件的大小的SQL语句如下所示。

    dbcc sqlperf(logspace)

    系统显示类似如下。

    3.png

    查看数据库中表的大小

    1、使用客户端连接实例,关于如何连接实例,请参见连接实例

    2、在SQL窗口中执行如下SQL语句。

    use [$DB]
    go
    sp_spaceused N'[$Table]'
    

    注:[$Table]为数据库的表名。

    系统显示类似如下。

    4.png

    3、查看该库所有的表,则需要使用脚本来实现,脚本如下所示。

    use [$DB]
    go
    declare @tabSize table(name nvarchar(100),rows char(20),reserved varchar(18) ,data varchar(18) ,index_size varchar(18) ,nnused varchar(18) )
    insert into @tabSize exec sp_msforeachtable 'sp_spaceused ''?'''
    select * from @tabSize order by convert(int,replace(data,'KB','')) desc,2 desc
    
    2022-01-14 15:20:48
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载