适用于:SQL Server
Azure 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 2019 (15.x) 和早期版本需要 VIEW SERVER STATE 权限。
SQL Server 2022 (16.x) 及更高版本,Azure SQL 托管实例需要 VIEW SERVER PERFORMANCE STATE 权限。
在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Microsoft Entra 管理员帐户或 ##MS_ServerStateReader##服务器角色中的成员身份为必填项。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。
示例
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;