sys.dm_db_log_space_usage (Transact-SQL)
适用于: 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 和 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;