Sdílet prostřednictvím


sys.dm_db_log_space_usage (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí informace o využití místa pro transakční protokol.

Poznámka:

Všechny soubory transakčního protokolu se kombinují.

Název sloupce Datový typ Description
database_id smallint ID databáze.

Ve službě Azure SQL Database jsou hodnoty jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru.
total_log_size_in_bytes bigint Velikost protokolu
used_log_space_in_bytes bigint Obsazená velikost protokolu
used_log_space_in_percent reálný Obsazená velikost protokolu jako procento celkové velikosti protokolu
log_space_in_bytes_since_last_backup bigint Velikost využitého místa od posledního zálohování protokolů
Platí pro: SQL Server 2014 (12.x) a novější verze a SQL Database.

Povolení

SQL Server 2019 (15.x) a starší verze vyžadují VIEW SERVER STATE oprávnění.

SQL Server 2022 (16.x) a novější verze a Azure SQL Managed Instance vyžadují VIEW SERVER PERFORMANCE STATE oprávnění.

U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.

Examples

A. Určení množství volného místa v protokolu v databázi tempdb

Následující dotaz vrátí celkové volné místo v protokolu v megabajtech (MB) dostupném v 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;