データベース容量の肥大化を防ごう!SQL Server データベースのサイズを確認する方法

2024-04-23

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) を使用する:
    1. SSMS でデータベースに接続します。
    2. オブジェクト エクスプローラーで、データベースを右クリックし、 プロパティ を選択します。
    3. プロパティ ダイアログ ボックスで、 ファイル ページを選択します。
  • Diskspd ユーティリティを使用する:
    1. Diskspd ユーティリティをダウンロードしてインストールします。
    2. コマンド プロンプトを開き、次のコマンドを実行します。
      diskspd -v -c "[ドライブ文字]:\[パス]\\[データベース ファイル名]"
      
      • [ドライブ文字]: は、データベース ファイルが存在するドライブの文字です。
      • [パス] は、データベース ファイルのフォルダーへのパスです。
      • [データベース ファイル名] は、データベース ファイルの名前です。
    3. このコマンドを実行すると、データベース ファイルに関する情報が表示されます。
      • 割り当てられた領域: データベース ファイルによって割り当てられた領域のサイズ (バイト単位)
  • サードパーティ製のツールを使用する:

留意事項

  • データベースのサイズは、常に変化しています。 データベースのサイズを確認するには、定期的にこの方法のいずれかを実行することをお勧めします。
  • データベースのサイズを確認するには、データベースに対する十分なアクセス許可を持っていることを確認してください。
  • サードパーティ製のツールを使用する場合は、ツールをダウンロードしてインストールする前に、そのツールのライセンス条項を確認してください。

sql sql-server sql-server-2008


SQLで関連テーブルの値を参照して列を更新する方法:詳細解説とサンプルコード

SQL の UPDATE ステートメントを使用して、あるテーブルの列の値を、別のテーブルの列を参照して更新できます。これは、関連テーブル間のデータの整合性を保つために役立ちます。構文説明table1: 更新対象のテーブルcolumn1: 更新対象の列...


【初心者向け】SQL Server テーブル定義の確認方法:T-SQL クエリとシステムプロシージャを使いこなす

SQL Server でテーブル定義を表示するには、主に以下の 2 つの方法があります。システムストアドプロシージャを使用するTransact-SQL (T-SQL) クエリを使用する利点シンプルでわかりやすい初心者でも使いやすい手順SQL Server Management Studio (SSMS) を起動します。...


C#、SQL Server、DapperでINSERTを実行し、挿入されたIDを取得する方法

SCOPE_IDENTITY()を使用するこの方法は、SCOPE_IDENTITY()関数を使用して、最後に挿入されたIDを取得します。OUTPUT句を使用するこの方法は、OUTPUT句を使用して、INSERTステートメントの一部として挿入されたIDを取得します。...


複合主キー vs UNIQUE 制約 vs UNIQUE インデックス vs CHECK 制約

複合主キーを設定するには、以下の方法があります。CREATE TABLE ステートメント例この例では、ユーザIDとメールアドレスの組み合わせが複合主キーとなります。つまり、同じユーザIDとメールアドレスを持つレコードは、テーブル内に2つ以上存在することはできません。...


SQLで既存テーブルに新列を追加する方法:外部キー制約付き・無し

新しい列を追加する外部キー制約を定義する一部のデータベースでは、ALTER TABLE文を1回実行して、新しい列を追加し、同時に外部キー制約を定義することができます。注意事項外部キー制約を定義するには、参照される側のテーブルに主キーが定義されている必要があります。...


SQL SQL SQL SQL Amazon で見る



PowerShellを使用してデータベースのサイズを確認する方法

SSMSは、SQL Serverを管理するためのツールです。SSMSを使用してデータベースのサイズを調べる方法は以下のとおりです。SSMSを起動し、データベースサーバーに接続します。オブジェクトエクスプローラーで、データベースを展開します。


sp_spaceusedシステムストアドプロシージャで詳細情報を取得

SQL Serverデータベースのサイズは、いくつかの要因によって決まります。主な要因は次のとおりです。データ量: データベースに格納されるデータ量。インデックス: データベースのパフォーマンスを向上させるために作成されるインデックス。空き領域: データベースの成長に対応するために確保される空き領域。


システム ビュー、管理ビュー、PowerShell、WMI を使用して SQL Server 2008 でデータベース サイズをクエリする方法

SQL Server 2008 で実行しているすべてのデータベースのサイズをすばやく簡単に確認する方法を知りたいですか?このチュートリアルでは、システム ビューを使用してすべてのデータベース サイズをクエリする方法について説明します。この方法は、すべてのデータベースの合計サイズだけでなく、個々のデータベース サイズも確認するのに役立ちます。