次の方法で共有


データベースのデータとログの領域情報を表示する

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric SQL Database

この記事は、SQL Server Management Studio または Transact-SQL を使用して SQL Server のデータベースに関するデータとログの領域情報を表示する方法について説明します。

開始する前に

sp_spaceused を実行するアクセス許可は、public ロールに付与されています。 @updateusage パラメーターを指定できるのは、db_owner 固定データベース ロールのメンバーだけです。

SQL Server Management Studio を使用します。

データベースのデータとログの領域情報を表示する

  1. [オブジェクト エクスプローラー]で、SQL Server のインスタンスに接続して、そのインスタンスを展開します。

  2. [データベース] を展開します。

  3. データベースを右クリックし、[レポート][標準レポート] の順にポイントし、[ディスク使用量] を選択します。

Transact-SQL の使用

sp_spaceused を使用してデータベースのデータ領域とログ領域情報を表示する

  1. データベース エンジンに接続します。

  2. [標準] ツール バーで、[新しいクエリ] を選択します。

  3. 次の例をクエリ ウィンドウに貼り付けて、[実行] を選択します。 この例では、sp_spaceused システム ストアド プロシージャを使用して、データベース全体 (テーブルやインデックスなど) のディスク領域情報を報告しています。

    USE AdventureWorks2022;  
    GO  
    EXEC sp_spaceused;  
    GO  
    

データベースのオブジェクトとアロケーション ユニットで使用されるデータ領域を表示する

  1. データベース エンジンに接続します。

  2. [標準] ツール バーで、[新しいクエリ] を選択します。

  3. 次の例をクエリ ウィンドウに貼り付けて、[実行] を選択します。 この例では、オブジェクト カタログ ビューに対してクエリを行い、ディスク領域の使用量をテーブルごとおよび各テーブル内のアロケーション ユニットごとに報告します。

    SELECT
      t.object_id,
      OBJECT_NAME(t.object_id) ObjectName,
      sum(u.total_pages) * 8 Total_Reserved_kb,
      sum(u.used_pages) * 8 Used_Space_kb,
      u.type_desc,
      max(p.rows) RowsCount
    FROM
      sys.allocation_units u
      JOIN sys.partitions p on u.container_id = p.hobt_id
      JOIN sys.tables t on p.object_id = t.object_id
    GROUP BY
      t.object_id,
      OBJECT_NAME(t.object_id),
      u.type_desc
    ORDER BY
      Used_Space_kb desc,
      ObjectName;
    
    

querying sys.database_files をクエリすることによってデータベースのデータ領域とログ領域情報を表示する

  1. データベース エンジンに接続します。

  2. [標準] ツール バーで、[新しいクエリ] を選択します。

  3. 次の例をクエリ ウィンドウに貼り付けて、[実行] を選択します。 この例では、 sys.database_files カタログ ビューに対してクエリを実行し、 AdventureWorks2022 データベース内のデータ ファイルとログ ファイルに関する特定の情報を取得します。

    USE AdventureWorks2022;  
    GO  
    SELECT file_id, name, type_desc, physical_name, size, max_size  
    FROM sys.database_files;  
    GO