sys.dm_db_log_space_usage(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 中的 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 数据库。

Permissions

SQL Server 2019 (15.x) 和早期版本需要 VIEW SERVER STATE 权限。

SQL Server 2022 (16.x) 及更高版本,Azure SQL 托管实例需要 VIEW SERVER PERFORMANCE STATE 权限。

在 SQL 数据库 基本S0S1 服务目标上,对于 弹性池服务器管理员 帐户、Microsoft entra 管理员 帐户或 ##MS_ServerStateReader##服务器角色 的成员身份。 在所有其他 SQL 数据库服务目标上,需要对数据库具有 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色的成员身份。

Examples

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;