Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na: SQL Server 2016 (13.x) SP2 a pozdější verze
Azure SQL Database
Azure SQL Managed Instance
SQL 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ů.
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)