显示数据库的数据和日志空间信息

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中显示数据库的数据和日志空间信息。

准备阶段

执行 sp_spaceused 的权限授予 public 角色 。 只有 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)
向数据库中添加数据文件或日志文件
删除数据库中的数据文件或日志文件