Sdílet prostřednictvím


sys.dm_hs_database_log_rate (Transact-SQL)

platí pro:azure SQL Database

Funkce sys.dm_hs_database_log_rate dynamické správy (DMF) vrací informace o rychlosti generování protokolů ve službě Azure SQL Database Hyperscale.

Každý řádek v sadě výsledků představuje komponentu, která řídí (snižuje) rychlost generování protokolů v databázi Hyperscale. V architektuře vrstvy Hyperscale existuje několik komponent, které by mohly snížit rychlost generování protokolů, aby byl výkon databáze stabilní a vyvážený.

Některé typy komponent, jako jsou sekundární výpočetní repliky nebo stránkové servery, můžou dočasně snížit rychlost generování protokolů na primární výpočetní replice, aby se zajistil celkový stav a stabilita databáze.

Pokud se rychlost generování protokolů nezmenší žádnou komponentou, vrátí se řádek pro komponentu primární výpočetní repliky s maximální povolenou rychlostí generování protokolů pro databázi.

Tato funkce dynamické správy vrací řádky pouze v případě, že je relace připojená k primární replice.

Syntaxe

sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

Arguments

database_id

database_id je celé číslo představující ID databáze bez výchozí hodnoty. Platné vstupy jsou BUĎ ID databáze, nebo NULL.

database_id Pokud je zadaný, sys.dm_hs_database_log_rate vrátí řádek pro danou konkrétní databázi.

Pokud není k dispozici nebo pokud NULL je k dispozici, vrátí pro jednu databázi řádek pro aktuální databázi. Pro databázi v elastickém fondu vrátí řádky pro všechny databáze ve fondu, ve kterých má volající dostatečná oprávnění.

Lze zadat předdefinovanou funkci DB_ID .

Vrácená tabulka

Název sloupce Datový typ Description
database_id Int NOT NULL Identifikátor databáze. Hodnoty jsou jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru.
replica_id uniqueidentifier NOT NULL Identifikátor výpočetní repliky, která odpovídá sloupci replica_id v sys.dm_database_replica_statessouboru . NULL odpovídá component_id serveru stránky Hyperscale.

Tato hodnota je vrácena voláním DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') funkce při připojení k replice.
file_id Int NULA ID databázového souboru v databázi, který odpovídá stránkovacímu serveru, který omezuje rychlost generování protokolů. Naplní se pouze v případě, že je role stránkový server, v opačném případě se vrátí NULL. Tato hodnota odpovídá sloupci file_id v sys.database_files.
current_max_log_rate bigint NOT NULL Aktuální maximální limit rychlosti protokolování pro rychlost generování protokolů na primární výpočetní replice v bajtech za sekundu. Pokud žádná komponenta nezmenšuje rychlost generování protokolů, hlásí limit rychlosti generování protokolů pro databázi Hyperscale.
component_id uniqueidentifier NOT NULL Jedinečný identifikátor komponenty Hyperscale, jako je stránkový server nebo výpočetní replika.
role smallint NOT NULL Všechny existující role komponent, které můžou snížit generování protokolů.

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 14
Pokud je rychlost generování protokolů omezená, mohou být na primární výpočetní replice pozorovány následující typy čekání odpovídající jednotlivým rolím:
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
Další informace najdete v tématu Čekání na omezování rychlosti protokolu.
role_desc nvarchar(60) NOT NULL Unknown = Role komponenty není známa.
Storage = Stránkové servery
Primary = Primární výpočetní replika
Replica = Sekundární výpočetní replika, jako je replika vysoké dostupnosti (HA), nebo pojmenovaná replika.
LocalDestage = Služba protokolu
Destage = Dlouhodobé úložiště protokolů
GeoReplica = geograficky sekundární replika
StorageCheckpoint = Kontrolní bod na serveru stránky
MigrationTarget = Cílová databáze během zpětné migrace z Hyperscale do databáze bez hyperškálování.
catchup_rate bigint NOT NULL Rychlost zachycení v bajtech za sekundu Vrátí nulu, pokud se rychlost protokolu nezmenší.
catchup_bytes bigint NOT NULL Množství transakčního protokolu v bajtech, které musí komponenta použít k zachycení primární výpočetní repliky. Vrátí 0 , když je komponenta zachycena.
last_reported_time datetime Čas posledního nahlášení hodnot služby protokolu Hyperscale

Poznámky

Funkce sys.dm_hs_database_log_rate dynamické správy se vztahuje pouze na úroveň Hyperscale služby Azure SQL Database.

Ve službě Azure SQL Database na úrovni služby Hyperscale zajišťuje služba protokolu, že distribuované komponenty se při uplatňování transakčního protokolu příliš nezaostanou. To je nutné k udržení celkového stavu a stability systému. Pokud jsou komponenty za sebou a jejich míra zachytávání je menší než aktuální rychlost generování protokolů, služba protokolů sníží rychlost generování protokolů na primárním serveru. DmF sys.dm_hs_database_log_rate() lze použít k pochopení, která komponenta způsobuje snížení rychlosti protokolu a v jakém rozsahu a jak dlouho může trvat snížení rychlosti protokolu.

Další kontext o snížení rychlosti protokolů najdete v tématu Diagnostika výkonu v Hyperscale.

Povolení

Tato funkce dynamické správy vyžaduje oprávnění ZOBRAZIT STAV VÝKONU DATABÁZE .

Examples

A. Vrácení komponenty způsobující snížení rychlosti protokolu v konkrétní databázi

Následující příklad vrátí řádek pro komponentu, která způsobuje snížení rychlosti protokolu. Pokud se rychlost generování protokolů nezmenší žádnou komponentou, vrátí se pro primární výpočetní prostředky řádek s maximální povolenou rychlostí generování protokolů pro databázi.

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. Vrácení komponent způsobujících snížení rychlosti protokolů

Při připojení k databázi v elastickém fondu vrátí následující příklad řádek pro komponentu, která způsobuje snížení rychlosti protokolu pro každou databázi ve fondu, kde máte dostatečná oprávnění. Při připojení k jednoúčelové databázi vrátí řádek databáze.

SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes 
FROM sys.dm_hs_database_log_rate(NULL);