sys.dm_db_log_space_usage (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

返回事务日志的空间使用情况信息。

注意

所有事务日志文件都合并在一起。

列名称 数据类型 描述
database_id smallint 数据库 ID。

在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。
total_log_size_in_bytes bigint 日志的大小
used_log_space_in_bytes bigint 日志的占用大小
used_log_space_in_percent real 日志的占用大小占日志总大小的百分比
log_space_in_bytes_since_last_backup bigint 自上次日志备份以来使用的空间量
适用于:SQL Server 2014 (12.x) 及更高版本、SQL 数据库。

权限

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Microsoft Entra 管理员帐户或##MS_ServerStateReader##服务器角色中的成员身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

要求对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

示例

A. 确定 tempdb 中的可用日志空间量

以下查询返回 tempdb 中可用日志总空间(以兆字节 (MB) 为单位)。

USE tempdb;  
GO  
SELECT 
(total_log_size_in_bytes - used_log_space_in_bytes)*1.0/1024/1024 AS [free log space in MB]  
FROM sys.dm_db_log_space_usage;  

后续步骤