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

ApsaraDB RDS:ApsaraDB RDS for SQL Server のデータベースおよびそのテーブルのストレージ使用量を確認する

最終更新日:Mar 29, 2026

コンソールでインスタンス全体のストレージ容量を確認し、T-SQL クエリを実行して、データベース単位およびテーブル単位の使用量をドリルダウンします。

インスタンスのストレージ容量を確認する

インスタンスの詳細ページで、基本情報 タブに移動します。ページには、プロビジョニングされたストレージの合計容量と現在の使用量が表示されます。

image

データベースのストレージ使用量を確認する

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

単一のデータベースを表示

特定のデータベースのストレージ使用量を確認するには、次のクエリを実行します。

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

このクエリは 2 つの結果セットを返します。下表に、返されるすべての列について説明します。

説明
database_sizeデータファイルおよびログファイルを含むデータベースの合計サイズ。この値は reserved および unallocated space の合計より大きくなります。これは、ログファイルのサイズが上記 2 列には含まれないためです。
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); を実行します。

テーブルのストレージ使用量を確認する

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

単一テーブルの表示

特定のテーブルのストレージ使用量を確認するには、次のクエリを実行します。

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

データベースのすべてのテーブルを表示

データベース内のすべてのテーブルのストレージ使用量を、データサイズの降順で一覧表示するには、次のクエリを実行します。

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;

次のステップ