すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ApsaraDB RDS for SQL Serverデータベースおよびデータベース内のテーブルで使用されるストレージ容量を表示する方法を教えてください。

最終更新日:Dec 18, 2024

このトピックでは、ApsaraDB RDS for SQL Serverデータベースおよびデータベース内のテーブルで使用されるストレージ容量を表示する方法について説明します。

RDS for SQL Serverインスタンスのストレージ容量の表示

RDS for SQL Serverインスタンスのインスタンス詳細ページに移動し、[基本情報] ページでインスタンスのストレージ容量を確認できます。

image

データベースが使用するストレージ容量の表示

  1. SSMSクライアントを使用して、RDS for SQL Serverインスタンスに接続します。 詳細については、「ApsaraDB RDS For SQL Serverインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、データベースで使用されているストレージ容量を表示します。

    USE <Database name>;
    GO
    EXEC sp_spaceused @updateusage = N'TRUE';

    パラメーター

    説明

    database_size

    データベースのサイズ (データファイルとログファイルのサイズを含む) 。 この値は、reservedパラメーターとunallocated spaceパラメーターの値の合計よりも大きくなります。

    未割り当てスペース

    データベースの未割り当てストレージのサイズ。

    予約済み

    データベースに割り当てられたストレージの合計サイズ。

    data

    データによって占有されているストレージ。

    index_size

    インデックスによって占有されているストレージ。

    未使用

    割り当てられているが未使用のストレージ。

  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

    結果には、ログファイルが使用するストレージ容量は含まれません。 次のステートメントを実行して、ログファイルのサイズを表示できます。

    DBCC SQLPERF(LOGSPACE);

データベース内のテーブルが使用するストレージ容量の表示

  1. SSMSクライアントを使用して、RDS for SQL Serverインスタンスに接続します。 詳細については、「ApsaraDB RDS For SQL Serverインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、データベース内のテーブルで使用されているストレージ容量を表示します。

    USE <Database name>;
    GO
    EXEC sp_spaceused N'<Table name>';

  3. 次のコマンドを実行して、データベース内のすべてのテーブルで使用されているストレージ容量を表示します。

    USE <Database name>;
    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;

関連ドキュメント