Udostępnij za pomocą


sys.dm_db_log_space_usage (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca informacje o użyciu miejsca dla dziennika transakcji.

Uwaga / Notatka

Wszystkie pliki dziennika transakcji są łączone.

Nazwa kolumny Typ danych Description
database_id smallint Identyfikator bazy danych.

W usłudze Azure SQL Database wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego.
total_log_size_in_bytes bigint Rozmiar dziennika
used_log_space_in_bytes bigint Zajęty rozmiar dziennika
used_log_space_in_percent prawdziwy Zajęty rozmiar dziennika jako procent całkowitego rozmiaru dziennika
log_space_in_bytes_since_last_backup bigint Ilość miejsca używanego od ostatniej kopii zapasowej dziennika
Dotyczy: SQL Server 2014 (12.x) i nowsze wersje oraz SQL Database.

Permissions

Program SQL Server 2019 (15.x) i starsze wersje wymagają VIEW SERVER STATE uprawnień.

Program SQL Server 2022 (16.x) i nowsze wersje oraz usługa Azure SQL Managed Instance wymagają VIEW SERVER PERFORMANCE STATE uprawnień.

W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.

Przykłady

A. Określanie ilości wolnego miejsca w dzienniku w bazie danych tempdb

Następujące zapytanie zwraca łączną ilość wolnego miejsca w dziennikach w megabajtach (MB) dostępnych w pliku tempdb.

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;