Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) SP2 och senare versioner
Azure SQL Database
Azure SQL Managed Instance
SQL database i Microsoft Fabric
Returnerar attribut på sammanfattningsnivå och information i transaktionsloggfiler i databaser. Använd denna information för övervakning och diagnostik av transaktionsloggens hälsa.
Transact-SQL syntaxkonventioner
Syntax
sys.dm_db_log_stats ( database_id )
Arguments
database_id | NULL | STANDARD
Är databasens ID.
database_id är int. Giltiga indata är databasens ID-nummer, NULL, eller DEFAULT. Standardvärdet är NULL.
NULL och DEFAULT är ekvivalenta värden i kontexten av den aktuella databasen.
Den inbyggda funktionen DB_ID kan anges. Vid användning DB_ID utan att specificera ett databasnamn måste kompatibilitetsnivån för den aktuella databasen vara 90 eller högre.
Tabeller som returnerades
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| database_id | int | Databas-ID. I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. |
| recovery_model | nvarchar(60) | Återställningsmodell för databasen. Möjliga värden inkluderar: ENKEL BULK_LOGGED FULLT |
| log_min_lsn | Nvarchar(24) | Aktuellt startloggsekvensnummer (LSN) i transaktionsloggen. |
| log_end_lsn | Nvarchar(24) | log sekvensnummer (LSN) för den senaste loggposten i transaktionsloggen. |
| current_vlf_sequence_number | bigint | Aktuellt följenummer för virtuell loggfil (VLF) vid exekveringstillfället. |
| current_vlf_size_mb | float | Nuvarande virtuell loggfilstorlek (VLF) i MB. |
| total_vlf_count | bigint | Totalt antal virtuella loggfiler (VLF) i transaktionsloggen. |
| total_log_size_mb | float | Total transaktionsloggstorlek i MB. |
| active_vlf_count | bigint | Totalt antal aktiva virtuella loggfiler (VLF) i transaktionsloggen. |
| active_log_size_mb | float | Total aktiv transaktionsloggstorlek i MB. |
| log_truncation_holdup_reason | nvarchar(60) | Logga orsaken till fördröjningen av trunkeringen. Värdet är samma som log_reuse_wait_desc kolumnen i sys.databases. (För mer detaljerade förklaringar av dessa värden, se The Transaction Log). Möjliga värden inkluderar: INGENTING CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE ACTIVE_TRANSACTION DATABASE_MIRRORING REPLIKERING DATABASE_SNAPSHOT_CREATION LOG_SCAN AVAILABILITY_REPLICA OLDEST_PAGE XTP_CHECKPOINT ANDRA ÖVERGÅENDE |
| log_backup_time | datetime | Sista transaktionsloggens säkerhetskopieringstid. |
| log_backup_lsn | Nvarchar(24) | Sista transaktionsloggens backup-logg sekvensnummer (LSN). |
| log_since_last_log_backup_mb | float | Loggstorlek i MB sedan senaste transaktionslogg backup logg sekvensnummer (LSN). |
| log_checkpoint_lsn | Nvarchar(24) | Sista kontrollpunktsloggens sekvensnummer (LSN). |
| log_since_last_checkpoint_mb | float | Loggstorlek i MB sedan senaste checkpoint-loggsekvensnummer (LSN). |
| log_recovery_lsn | Nvarchar(24) |
Återställningsloggens sekvensnummer (LSN) för databasen. Om det log_recovery_lsn sker före kontrollpunkten är LSN log_recovery_lsn den äldsta aktiva transaktionen LSN, annars log_recovery_lsn är kontrollpunktens LSN. |
| log_recovery_size_mb | float | Loggstorlek i MB sedan loggåterhämtningssekvensnummer (LSN). |
| recovery_vlf_count | bigint | Totalt antal virtuella loggfiler (VLF) som ska återställas, om det sker en failover eller serveromstart. |
Anmärkningar
När man kör sys.dm_db_log_stats mot en databas som deltar i en tillgänglighetsgrupp som sekundär replik, returneras endast en delmängd av de fält som beskrivs ovan. För närvarande kommer endast database_id, recovery_model, och log_backup_time returneras när den körs mot en sekundär databas.
Permissions
Kräver behörigheten VIEW SERVER STATE i databasen.
Behörigheter för SQL Server 2022 och senare
Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.
Examples
A. Bestämning av databaser i en SQL Server-instans med ett högt antal VLF:er
Följande fråga returnerar databaserna med mer än 100 VLF:er i loggfilerna. Stora mängder VLF:er kan påverka databasens start-, återställnings- och återställningstid.
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. Att bestämma databaser i en SQL Server-instans med transaktionslogg-backuper äldre än 4 timmar
Följande fråga bestämmer de senaste loggbackuptiderna för databaserna i instansen.
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);
Se även
Dynamiska hanteringsvyer och funktioner (Transact-SQL)
databasrelaterade dynamiska hanteringsvyer (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)