全部產品
Search
文件中心

ApsaraDB RDS:如何查看RDS SQL Server資料庫及表的空間大小

更新時間:Dec 05, 2024

本文介紹查看RDS SQL Server資料庫及表的空間大小的方法。

查看執行個體空間的大小

在RDS執行個體詳情頁的基本資料頁面查看執行個體總空間及已使用空間大小。

image

查看資料庫的大小

  1. 通過SSMS用戶端串連執行個體。具體操作,請參見串連SQL Server執行個體

  2. 查看單個資料庫的空間使用方式,SQL命令如下:

    USE <資料庫名>;
    GO
    EXEC sp_spaceused @updateusage = N'TRUE';

    image

    參數

    說明

    database_size

    資料庫總大小,包含資料和記錄檔總和。該值始終大於reserved+unallocated space

    unallocated space

    資料庫的未配置的空間。

    reserved

    已指派的空間總量。

    data

    實際資料佔用的空間大小。

    index_size

    索引佔用的空間大小。

    unused

    已指派但未使用的空間。

  3. 查看所有資料庫的空間使用方式,SQL命令如下:

    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

    返回結果樣本如下:

    image

    以上返回結果未包含記錄檔的大小,查看記錄檔大小的SQL命令如下:

    DBCC SQLPERF(LOGSPACE);

    返回結果樣本如下:

    image

查看資料庫中表的大小

  1. 通過SSMS用戶端串連執行個體。具體操作,請參見串連SQL Server執行個體

  2. 查看資料庫中單個表大小,SQL命令如下:

    USE <資料庫名>;
    GO
    EXEC sp_spaceused N'<表名>';

    返回結果樣本如下:

    image

  3. 查看資料庫中所有表大小,SQL命令如下:

    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;

    返回結果樣本如下:

    image

相關文檔