Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) SP2 en latere versies
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Geeft samenvattende attributen en informatie terug in transactielogbestanden van databases. Gebruik deze informatie voor monitoring en diagnostiek van de gezondheid van transactielogboeken.
Transact-SQL syntaxis-conventies
Syntaxis
sys.dm_db_log_stats ( database_id )
Arguments
database_id | NULL | VERSTEK
Is de ID van de database.
database_id is int. Geldige invoer zijn het ID-nummer van een database, NULL, of DEFAULT. De standaardwaarde is NULL.
NULL en DEFAULT zijn equivalente waarden in de context van de huidige database.
De ingebouwde functie DB_ID kan worden opgegeven. Bij gebruik zonder DB_ID het specificeren van een databasenaam moet het compatibiliteitsniveau van de huidige database 90 of hoger zijn.
Teruggegeven tabellen
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| database_id | int | Database-id. In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server. |
| recovery_model | nvarchar(60) | Herstelmodel van de database. Mogelijke waarden zijn: EENVOUDIG BULK_LOGGED VOLLEDIG |
| log_min_lsn | Nvarchar(24) | Huidig startlog-sequentienummer (LSN) in het transactielogboek. |
| log_end_lsn | Nvarchar(24) | log volgnummer (LSN) van het laatste logrecord in het transactielogboek. |
| current_vlf_sequence_number | bigint | Huidig virtueel logbestand (VLF) volgnummer op het moment van uitvoering. |
| current_vlf_size_mb | float | Huidige virtuele logbestandgrootte (VLF) in MB. |
| total_vlf_count | bigint | Totaal aantal virtuele logbestanden (VLF's) in het transactielogboek. |
| total_log_size_mb | float | Totale grootte van het transactielogboek in MB. |
| active_vlf_count | bigint | Totaal aantal actieve virtuele logbestanden (VLF's) in het transactielogboek. |
| active_log_size_mb | float | Totale actieve transactieloggrootte in MB. |
| log_truncation_holdup_reason | nvarchar(60) | Log de reden waarom afsnijding wordt vertraagd. De waarde is hetzelfde als log_reuse_wait_desc de kolom van sys.databases. (Voor meer gedetailleerde uitleg van deze waarden, zie Het Transactielogboek). Mogelijke waarden zijn: NIETS CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE ACTIVE_TRANSACTION Database Spiegeling REPLICATIE DATABASE_SNAPSHOT_CREATION LOG_SCAN AVAILABILITY_REPLICA OLDEST_PAGE XTP_CHECKPOINT ANDERE VOORBIJGAANDE U |
| log_backup_time | datetime | Back-up tijd voor het laatste transactielogboek. |
| log_backup_lsn | Nvarchar(24) | Laatste transactielog-back-up log-sequentienummer (LSN). |
| log_since_last_log_backup_mb | float | Loggrootte in MB sinds het laatste transactielog-back-uplognummer (LSN). |
| log_checkpoint_lsn | Nvarchar(24) | Laatste checkpointlog-sequentienummer (LSN). |
| log_since_last_checkpoint_mb | float | Loggrootte in MB sinds het laatste checkpoint-lognummer (LSN). |
| log_recovery_lsn | Nvarchar(24) |
Herstellog-sequentienummer (LSN) van de database. Als log_recovery_lsn vóór het checkpoint LSN plaatsvindt, log_recovery_lsn is de oudste actieve transactie LSN, anders log_recovery_lsn is het checkpoint LSN. |
| log_recovery_size_mb | float | Loggrootte in MB sinds log recovery log sequence number (LSN). |
| recovery_vlf_count | bigint | Totaal aantal virtuele logbestanden (VLF's) dat hersteld moet worden, als er sprake is van failover of serverherstart. |
Opmerkingen
Wanneer het wordt uitgevoerd sys.dm_db_log_stats tegen een database die deelneemt aan een Availability Group als secundaire replica, wordt slechts een deelverzameling van de hierboven beschreven velden teruggegeven. Momenteel wordt alleen database_id, recovery_model, en log_backup_time wordt teruggegeven wanneer het wordt uitgevoerd tegen een secundaire database.
Permissions
Hiervoor is de VIEW SERVER STATE machtiging in de database vereist.
Machtigingen voor SQL Server 2022 en hoger
Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.
Voorbeelden
Eén. Databases bepalen in een SQL Server-instantie met een hoog aantal VLF's
De volgende query geeft de databases terug met meer dan 100 VLF's in de logbestanden. Grote aantallen VLF's kunnen de opstart-, herstel- en hersteltijd van de database beïnvloeden.
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. Databases bepalen in een SQL Server-instantie met back-ups van transactielogboeken ouder dan 4 uur
De volgende query bepaalt de laatste logback-uptijden voor de databases in de instantie.
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);
Zie ook
Dynamische beheerweergaven en -functies (Transact-SQL)
databasegerelateerde dynamische beheerweergaven (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)