Freigeben über


sys.dm_db_log_space_usage (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Gibt Informationen zur Speicherplatznutzung für das Transaktionsprotokoll zurück.

Hinweis

Alle Transaktionsprotokolldateien werden kombiniert.

Spaltenname Datentyp Beschreibung
database_id smallint Datenbank-ID

In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers.
total_log_size_in_bytes bigint Die Größe des Protokolls
used_log_space_in_bytes bigint Die belegte Größe des Protokolls
used_log_space_in_percent real Die belegte Größe des Protokolls als Prozent der Gesamtprotokollgröße
log_space_in_bytes_since_last_backup bigint Der Speicherplatz, der seit der letzten Protokollsicherung verwendet wird
Gilt für: SQL Server 2014 (12.x) und höhere Versionen und SQL-Datenbank.

Berechtigungen

SQL Server 2019 (15.x) und frühere Versionen erfordern VIEW SERVER STATE eine Berechtigung.

SQL Server 2022 (16.x) und höhere Versionen sowie azure SQL Managed Instance erfordern VIEW SERVER PERFORMANCE STATE Berechtigungen.

Für die SQL-Datenbank-Ziele Basic, S0 und S1 sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators oder des Microsoft Entra-Administratorkontos oder die Mitgliedschaft in der ##MS_ServerStateReader##Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##-Serverrolle erforderlich.

Beispiele

A. Ermitteln des freien Speicherplatzes in tempdb

Die folgende Abfrage gibt den gesamten freien Protokollspeicherplatz in Megabyte (MB) zurück, der in tempdb verfügbar ist.

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;