このトピックでは、RDS SQL Server インスタンスにおけるデータベースとテーブルのストレージ領域を確認する方法について説明します。
インスタンス領域の確認
インスタンス詳細ページの [基本情報] セクションで、合計ストレージ領域と使用済みストレージ領域を確認します。
[使用状況] セクションで、合計と使用済みの [ストレージ領域] を確認します。
データベースサイズの確認
-
SSMS クライアントでインスタンスに接続します。 詳細については、「SQL Server インスタンスへの接続」をご参照ください。
-
単一データベースの領域使用状況を確認するには、次の SQL コマンドを実行します:
USE <database_name>; GO EXEC sp_spaceused @updateusage = N'TRUE';パラメーター
説明
database_size
データベースの合計サイズ (データファイルとログファイルを含む)。
unallocated space
データベース内の未割り当て領域。
reserved
割り当て済みの合計領域。
data
データが使用する領域。
index_size
インデックスが使用する領域。
unused
割り当て済みだが未使用の領域。
-
すべてのデータベースの領域使用状況を確認するには、次の 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出力例を次に示します:
dbName checkTime dbSize logSize master 2024-01-01 12:00:00 5.00 MB 1.50 MB tempdb 2024-01-01 12:00:00 8.00 MB 0.50 MB model 2024-01-01 12:00:00 3.25 MB 0.75 MBトランザクションログの使用状況に関する詳細情報 (使用領域の割合など) を確認するには、次の SQL コマンドを実行します:
DBCC SQLPERF(LOGSPACE);結果セットは、Database Name、Log Size (MB)、Log Space Used (%)、Status の各列を返します。
データベース内のテーブルサイズの確認
-
SSMS クライアントでインスタンスに接続します。 詳細については、「SQL Server インスタンスへの接続」をご参照ください。
-
データベース内の単一テーブルのサイズを確認するには、次の SQL コマンドを実行します:
USE <database_name>; GO EXEC sp_spaceused N'<table_name>';出力例を次に示します:
name rows reserved data index_size unused zhtdb 10000 328 KB 304 KB 16 KB 8 KB -
データベース内のすべてのテーブルのサイズを確認するには、次の SQL コマンドを実行します:
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;出力例を次に示します:
name rows reserved data index_size unused zhtdb 10000 328 KB 304 KB 16 KB 8 KB