顯示資料庫的資料並記錄其空間資訊

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

本文描述了如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中顯示資料庫的資料並記錄其空間資訊。

開始之前

執行 sp_spaceused 的權限將授與公用角色。 只有 db_owner 固定資料庫角色的成員,才能指定 @updateusage 參數。

使用 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;
    
    

透過查詢 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  
    
    

另請參閱

SELECT (Transact-SQL)
sys.database_files (Transact-SQL)
sp_spaceused (Transact-SQL)
將資料或記錄檔新增至資料庫
從資料庫中刪除資料或記錄檔