データベース容量の肥大化を防ごう!SQL Server データベースのサイズを確認する方法
SQL Server データベースのサイズを確認する方法
クエリを使用する
SELECT
name,
physical_name,
data_type,
reserved_page_count * 8 AS reserved_space (MB),
reserved_page_count * 8 / 1024 AS reserved_space (GB),
max_size * 8 AS max_space (MB),
max_size * 8 / 1024 AS max_space (GB),
growth * 8 AS growth_space (MB),
growth * 8 / 1024 AS growth_space (GB)
FROM sys.database_files
このクエリを実行すると、以下の情報を含む結果セットが返されます。
- データベースの名前
- データベース ファイルの物理的な場所
- データベース ファイルが占有する予約済みスペース (MB および GB)
システム ビューを使用する
SQL Server 2008 以降では、sys.dm_db_partition_stats
システム ビューを使用して、データベース パーティションのサイズを確認することもできます。
SELECT
database_id,
partition_number,
index_id,
partition_name,
allocated_bytes / 1024 AS allocated_space (MB),
allocated_bytes / 1048576 AS allocated_space (GB),
reserved_bytes / 1024 AS reserved_space (MB),
reserved_bytes / 1048576 AS reserved_space (GB),
data_pages / 8 AS data_pages (MB),
data_pages / 1024 AS data_pages (GB)
FROM sys.dm_db_partition_stats
- パーティション番号
- インデックス ID
- パーティションによって割り当てられたスペース (MB および GB)
ヒント
- 特定のデータベースのサイズを確認するには、
WHERE
句を使用してクエリを制限できます。 - データベース ファイルのサイズを確認するには、
physical_name
列を使用します。
SQL Server データベースのサイズを確認するサンプル コード
SELECT
name,
physical_name,
data_type,
reserved_page_count * 8 AS reserved_space (MB),
reserved_page_count * 8 / 1024 AS reserved_space (GB),
max_size * 8 AS max_space (MB),
max_size * 8 / 1024 AS max_space (GB),
growth * 8 AS growth_space (MB),
growth * 8 / 1024 AS growth_space (GB)
FROM sys.database_files
WHERE name = 'AdventureWorks2019';
このコードを実行すると、以下の結果が出力されます。
name physical_name data_type reserved_space (MB) reserved_space (GB) max_space (MB) max_space (GB) growth_space (MB) growth_space (GB)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AdventureWorks2019 D:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\Data\AdventureWorks2019.mdf FILE 5,242,880 5.12 5,242,880 5.12 10,485,760 10.24
AdventureWorks2019_log D:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\Data\AdventureWorks2019_log.ldf FILE 640,000 0.62 640,000 0.62 1,280,000 1.25
この結果から、AdventureWorks2019 データベースは、AdventureWorks2019.mdf
データ ファイルと AdventureWorks2019_log.ldf
ログ ファイルの合計で、約 5.74 GB のサイズであることがわかります。
注: このサンプル コードは、AdventureWorks2019 データベースがデフォルトの場所にインストールされていることを前提としています。 データベースが別の場所にインストールされている場合は、physical_name
列の値を更新する必要があります。
sys.dm_db_partition_stats システム ビューを使用するサンプル コード
以下のサンプル コードは、sys.dm_db_partition_stats
システム ビューを使用して、AdventureWorks2019 データベースの各パーティションのサイズを確認する方法を示しています。
SELECT
database_id,
partition_number,
index_id,
partition_name,
allocated_bytes / 1024 AS allocated_space (MB),
allocated_bytes / 1048576 AS allocated_space (GB),
reserved_bytes / 1024 AS reserved_space (MB),
reserved_bytes / 1048576 AS reserved_space (GB),
data_pages / 8 AS data_pages (MB),
data_pages / 1024 AS data_pages (GB)
FROM sys.dm_db_partition_stats
WHERE database_id = 4;
database_id partition_number index_id partition_name allocated_space (MB) allocated_space (GB) reserved_space (MB) reserved_space (GB)
SQL Server データベースのサイズを確認するその他の方法
- SQL Server Management Studio (SSMS) を使用する:
- SSMS でデータベースに接続します。
- オブジェクト エクスプローラーで、データベースを右クリックし、 プロパティ を選択します。
- プロパティ ダイアログ ボックスで、 ファイル ページを選択します。
- Diskspd ユーティリティを使用する:
- Diskspd ユーティリティをダウンロードしてインストールします。
- コマンド プロンプトを開き、次のコマンドを実行します。
diskspd -v -c "[ドライブ文字]:\[パス]\\[データベース ファイル名]"
[ドライブ文字]:
は、データベース ファイルが存在するドライブの文字です。[パス]
は、データベース ファイルのフォルダーへのパスです。[データベース ファイル名]
は、データベース ファイルの名前です。
- このコマンドを実行すると、データベース ファイルに関する情報が表示されます。
- 割り当てられた領域: データベース ファイルによって割り当てられた領域のサイズ (バイト単位)
- サードパーティ製のツールを使用する:
留意事項
- データベースのサイズは、常に変化しています。 データベースのサイズを確認するには、定期的にこの方法のいずれかを実行することをお勧めします。
- データベースのサイズを確認するには、データベースに対する十分なアクセス許可を持っていることを確認してください。
- サードパーティ製のツールを使用する場合は、ツールをダウンロードしてインストールする前に、そのツールのライセンス条項を確認してください。
sql sql-server sql-server-2008