Anteckning
Å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:Azure SQL Database
Funktionen sys.dm_hs_database_log_rate för dynamisk hantering (DMF) returnerar information om logggenereringshastigheten i Azure SQL Database Hyperscale.
Varje rad i resultatuppsättningen representerar en komponent som styr (minskar) logggenereringshastigheten i en Hyperskala-databas. Det finns flera komponenter i arkitekturen på Hyperskala-nivån som kan minska logggenereringshastigheten för att hålla databasens prestanda stabil och balanserad.
Vissa typer av komponenter, till exempel sekundära beräkningsrepliker eller sidservrar, kan tillfälligt minska logggenereringshastigheten på den primära beräkningsrepliken för att säkerställa databasens övergripande hälsa och stabilitet.
Om logggenereringshastigheten inte minskas av någon komponent returneras en rad för den primära beräkningsreplikkomponenten, som visar den högsta tillåtna logggenereringshastigheten för databasen.
Den här dynamiska hanteringsfunktionen returnerar endast rader när sessionen är ansluten till den primära repliken.
Syntax
sys.dm_hs_database_log_rate (
{ database_id | NULL }
)
Arguments
database_id
database_id är ett heltal som representerar databas-ID:t utan standardvärde. Giltiga indata är antingen ett databas-ID eller NULL.
När en database_id anges sys.dm_hs_database_log_rate returnerar en rad för den specifika databasen.
När det inte anges eller när NULL anges returnerar en rad för den aktuella databasen för en enskild databas. För en databas i en elastisk pool returnerar rader för alla databaser i poolen där anroparen har tillräcklig behörighet.
Den inbyggda funktionen DB_ID kan anges.
Tabell returnerad
| Kolumnnamn | Datatyp | Description |
|---|---|---|
database_id |
Int INTE NULL | Identifierare för databasen. Värdena är unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. |
replica_id |
uniqueidentifier INTE NULL | Identifierare för en beräkningsreplik replica_id som motsvarar kolumnen i sys.dm_database_replica_states.
NULL när component_id motsvarar en Hyperskala-sidserver.Det här värdet returneras av funktionsanropet DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') när det är anslutet till repliken. |
file_id |
Int NOLL | ID för databasfilen i databasen som motsvarar den sidserver som begränsar logggenereringshastigheten. Fylls endast i om rollen är sidserver, annars returneras NULL. Det här värdet motsvarar file_id kolumnen i sys.database_files. |
current_max_log_rate |
bigint INTE NULL | Den aktuella maximala logghastighetsgränsen för logggenereringshastighet på den primära beräkningsrepliken i byte/s. Om ingen komponent minskar logggenereringshastigheten rapporterar logggenereringshastighetsgränsen för en Hyperskala-databas. |
component_id |
uniqueidentifier INTE NULL | En unik identifierare för en Hyperskala-komponent, till exempel en sidserver eller en beräkningsreplik. |
role |
smallint INTE NULL | Alla befintliga komponentroller som kan minska logggenereringen.Unknown = 0Storage = 1Primary = 2Replica = 4LocalDestage = 5Destage = 6 GeoReplica = 10StorageCheckpoint = 12MigrationTarget = 14När logggenereringshastigheten är begränsad kan följande väntetyper som motsvarar varje roll observeras på den primära beräkningsrepliken: 1 – RBIO_RG_STORAGE 4 – RBIO_RG_REPLICA 5 – RBIO_RG_LOCALDESTAGE 6 – RBIO_RG_DESTAGE 10 - RBIO_RG_GEOREPLICA 12 – RBIO_RG_STORAGE_CHECKPOINT 14 – RBIO_RG_MIGRATION_TARGET Mer information finns i Väntetider för logghastighetsbegränsning |
role_desc |
nvarchar(60) INTE NULL |
Unknown = Komponentrollen är inte kändStorage = Sidserver(er)Primary = Primär beräkningsreplikReplica = Sekundär beräkningsreplik, till exempel en hög tillgänglighetsreplik (HA) eller en namngiven replik.LocalDestage = LoggtjänstDestage = Långsiktig logglagringGeoReplica = Geo-sekundär replikStorageCheckpoint = En kontrollpunkt på en sidserverMigrationTarget = Måldatabasen under omvänd migrering från Hyperskala till en databas som inte är hyperskala. |
catchup_rate |
bigint INTE NULL | Catchup-hastighet i byte per sekund. Returnerar noll när loggfrekvensen inte minskas. |
catchup_bytes |
bigint INTE NULL | Mängden transaktionslogg, i byte, som en komponent måste tillämpa för att komma ikapp den primära beräkningsrepliken. Returnerar 0 när komponenten fångas upp. |
last_reported_time |
datetime | Senast Hyperskala-loggtjänsten rapporterade värden. |
Anmärkningar
Funktionen sys.dm_hs_database_log_rate för dynamisk hantering gäller endast för Hyperskala-nivån i Azure SQL Database.
På tjänstnivån Hyperskala i Azure SQL Database ser loggtjänsten till att de distribuerade komponenterna inte kommer långt efter när transaktionsloggen tillämpas. Detta krävs för att upprätthålla det övergripande systemets hälsa och stabilitet. När komponenterna ligger efter och deras upphämtningshastighet är lägre än den aktuella logggenereringshastigheten minskar loggtjänsten logggenereringshastigheten för den primära.
sys.dm_hs_database_log_rate() DMF kan användas för att förstå vilken komponent som orsakar sänkningen av loggfrekvensen och i vilken utsträckning och hur länge loggfrekvensen kan minskas.
Mer kontext om minskning av loggfrekvens finns i Prestandadiagnostik i Hyperskala.
Permissions
Den här dynamiska hanteringsfunktionen kräver behörigheten VISA DATABASPRESTANDATILLSTÅND .
Examples
A. Returnera komponenten som orsakar logghastighetsminskning i en specifik databas
I följande exempel returneras en rad för komponenten som orsakar minskning av loggfrekvens. Om logggenereringshastigheten inte minskas av någon komponent returneras en rad för den primära beräkningen, som visar den maximala tillåtna logggenereringshastigheten för databasen.
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(DB_ID(N'Contosodb'));
B. Returnera komponenterna som orsakar logghastighetsminskning
När du är ansluten till en databas i en elastisk pool returnerar följande exempel en rad för komponenten som orsakar minskning av loggfrekvensen för varje databas i poolen där du har tillräcklig behörighet. När du är ansluten till en enskild databas returnerar raden för databasen.
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(NULL);