Sdílet prostřednictvím


sys.dm_db_log_stats (Transact-SQL)

Platí na: SQL Server 2016 (13.x) SP2 a pozdější verze Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Vrací souhrnné atributy a informace z transakčních logů databází. Tyto informace použijte pro monitorování a diagnostiku stavu transakčních logů.

Transact-SQL konvence syntaxe

Syntaxe

 sys.dm_db_log_stats ( database_id )

Arguments

database_id | NULL | VÝCHOZÍ

Je ID databáze. database_id je int. Platné vstupy jsou ID číslo databáze, NULL, nebo DEFAULT. Výchozí hodnota je NULL. NULL a DEFAULT jsou ekvivalentní hodnoty v kontextu aktuální databáze.
Lze zadat předdefinovanou funkci DB_ID. Při použití DB_ID bez specifikace názvu databáze musí být úroveň kompatibility aktuální databáze 90 nebo více.

Vrácené tabulky

Název sloupce Datový typ Description
database_id int 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.
recovery_model nvarchar(60) Model obnovy databáze. Mezi možné hodnoty patří:
JEDNODUCHÝ
BULK_LOGGED
ÚPLNÝ
log_min_lsn nvarchar(24) Aktuální pořadové číslo startovacího logu (LSN) v transakčním logu.
log_end_lsn nvarchar(24) sekvenční číslo logu (LSN) posledního záznamu v transakčním logu.
current_vlf_sequence_number bigint Aktuální pořadové číslo virtuálního log souboru (VLF) v době provedení.
current_vlf_size_mb float Aktuální velikost virtuálního logu (VLF) v MB.
total_vlf_count bigint Celkový počet virtuálních logovacích souborů (VLF) v transakčním logu.
total_log_size_mb float Celková velikost transakčního logu v MB.
active_vlf_count bigint Celkový počet aktivních virtuálních logů (VLF) v transakčním logu.
active_log_size_mb float Celková velikost aktivního transakčního logu v MB.
log_truncation_holdup_reason nvarchar(60) Důvod zdržení logaritmu zkrácení. Hodnota je stejná jako log_reuse_wait_desc sloupec .sys.databases (Pro podrobnější vysvětlení těchto hodnot viz Transakční záznam).
Mezi možné hodnoty patří:
NIC
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
ZRCADLENÍ_DATABÁZE
REPLIKACE
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
DALŠÍ PŘECHODNÉ JEVY
log_backup_time datetime Čas zálohování posledního transakčního logu.
log_backup_lsn nvarchar(24) Poslední sekvenční číslo záznamu zálohy transakcí (LSN).
log_since_last_log_backup_mb float Velikost logu v MB od posledního záznamu transakce – záloha logu (LSN).
log_checkpoint_lsn nvarchar(24) Poslední číslo pořadí checkpoint (LSN).
log_since_last_checkpoint_mb float Velikost logu v MB od posledního checkpointu sekvenční číslo (LSN).
log_recovery_lsn nvarchar(24) Pořadové číslo záznamu obnovy (LSN) databáze. Pokud log_recovery_lsn nastane před kontrolním bodem, log_recovery_lsn LSN je nejstarší aktivní transakční LSN, jinak log_recovery_lsn je to kontrolní LSN.
log_recovery_size_mb float Velikost logu v MB od logu log recovery sekvenční číslo (LSN).
recovery_vlf_count bigint Celkový počet virtuálních logovacích souborů (VLF), které bylo třeba obnovit, pokud došlo k failoveru nebo restartu serveru.

Poznámky

Při spuštění sys.dm_db_log_stats databáze, která se účastní Availability Group jako sekundární replika, bude vrácena pouze podmnožina výše popsaných polí. V současnosti se při spuštění se sekundární databází vrátí pouze database_id, recovery_model, a log_backup_time .

Povolení

VIEW SERVER STATE Vyžaduje oprávnění v databázi.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.

Examples

A. Určení databází v instanci SQL Serveru s vysokým počtem VLF

Následující dotaz vrací databáze s více než 100 VLF v logovacích souborech. Velké množství VLF může ovlivnit čas spuštění, obnovy a obnovy databáze.

SELECT name AS 'Database Name', total_vlf_count AS 'VLF count' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id) 
WHERE total_vlf_count  > 100;

B. Určení databází v instanci SQL Server pomocí záloh transakčních logů starších než 4 hodiny

Následující dotaz určuje časy posledního zálohování logů pro databáze v dané instanci.

SELECT name AS 'Database Name', log_backup_time AS 'last log backup time' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id); 

Viz také

Zobrazení a funkce dynamické správy (Transact-SQL)
zobrazení dynamické správy související s databází (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)