Udostępnij za pomocą


sys.dm_hs_database_log_rate (Transact-SQL)

Dotyczy:azure SQL Database

Funkcja sys.dm_hs_database_log_rate dynamicznego zarządzania (DMF) zwraca informacje o współczynniku generowania dzienników w hiperskala usługi Azure SQL Database.

Każdy wiersz w zestawie wyników reprezentuje składnik, który kontroluje (zmniejsza) szybkość generowania dzienników w bazie danych Hiperskala. Istnieje wiele składników w architekturze warstwy Hiperskala , które mogą zmniejszyć szybkość generowania dzienników, aby zapewnić stabilną i zrównoważoną wydajność bazy danych.

Niektóre typy składników, takich jak pomocnicze repliki obliczeniowe lub serwery stron, mogą tymczasowo zmniejszyć częstotliwość generowania dzienników w podstawowej replice obliczeniowej, aby zapewnić ogólną kondycję i stabilność bazy danych.

Jeśli szybkość generowania dziennika nie zostanie zmniejszona przez żaden składnik, wiersz zostanie zwrócony dla podstawowego składnika repliki obliczeniowej, pokazujący maksymalną dozwoloną szybkość generowania dzienników dla bazy danych.

Ta funkcja dynamicznego zarządzania zwraca wiersze tylko wtedy, gdy sesja jest połączona z repliką podstawową.

Składnia

sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

Arguments

id_bazy_danych

database_id jest liczbą całkowitą reprezentującą identyfikator bazy danych bez wartości domyślnej. Prawidłowe dane wejściowe to identyfikator bazy danych lub NULL.

Po podaniu sys.dm_hs_database_log_rate elementu database_id zwraca wiersz dla tej konkretnej bazy danych.

Jeśli nie podano wartości lub NULL gdy jest podana, dla pojedynczej bazy danych zwraca wiersz dla bieżącej bazy danych. W przypadku bazy danych w elastycznej puli zwraca wiersze dla wszystkich baz danych w puli, w której obiekt wywołujący ma wystarczające uprawnienia.

Można określić wbudowaną funkcję DB_ID .

Zwracana tabela

Nazwa kolumny Typ danych Description
database_id Int NOT NULL Identyfikator bazy danych. Wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego.
replica_id uniqueidentifier NOT NULL Identyfikator repliki obliczeniowej odpowiadającej kolumnie replica_id w sys.dm_database_replica_statespliku . NULL gdy component_id odpowiada serwerowi strony w warstwie Hiperskala.

Ta wartość jest zwracana przez DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') wywołanie funkcji po nawiązaniu połączenia z repliką.
file_id Int ZERO Identyfikator pliku bazy danych w bazie danych, który odpowiada serwerowi strony ograniczającemu szybkość generowania dziennika. Zostanie wypełniony tylko wtedy, gdy rola jest serwerem strony, w przeciwnym razie zwraca wartość NULL. Ta wartość odpowiada kolumnie w pliku file_idsys.database_files.
current_max_log_rate bigint NOT NULL Bieżący maksymalny limit szybkości rejestrowania dla szybkości generowania dziennika w podstawowej repliki obliczeniowej w bajtach/s. Jeśli żaden składnik nie zmniejsza szybkości generowania dzienników, raportuje limit szybkości generowania dzienników dla bazy danych w warstwie Hiperskala.
component_id uniqueidentifier NOT NULL Unikatowy identyfikator składnika hiperskala, takiego jak serwer strony lub replika obliczeniowa.
role smallint NOT NULL Wszystkie istniejące role składników, które mogą zmniejszyć generowanie dziennika.

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 14
Jeśli szybkość generowania dziennika jest ograniczona, w podstawowej repliki obliczeniowej mogą być obserwowane następujące typy oczekiwania odpowiadające każdej roli:
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
Aby uzyskać więcej informacji, zobacz Oczekiwanie na ograniczanie szybkości dzienników
role_desc nvarchar(60) NOT NULL Unknown = Rola składnika nie jest znana
Storage = Serwery stron
Primary = podstawowa replika obliczeniowa
Replica = pomocnicza replika obliczeniowa, taka jak replika wysokiej dostępności (HA) lub nazwana replika.
LocalDestage = Usługa rejestrowania
Destage = Długoterminowy magazyn dzienników
GeoReplica = Replika pomocnicza geograficzna
StorageCheckpoint = punkt kontrolny na serwerze strony
MigrationTarget = docelowa baza danych podczas odwrotnej migracji z warstwy Hiperskala do bazy danych innej niż Hiperskala.
catchup_rate bigint NOT NULL Współczynnik zaległości w bajtach/s. Zwraca zero, gdy szybkość rejestrowania nie jest zmniejszana.
catchup_bytes bigint NOT NULL Ilość dziennika transakcji w bajtach, które składnik musi zastosować, aby nadrobić zaległości w podstawowej repliki obliczeniowej. Zwraca wartość 0 , gdy składnik zostanie złapany.
last_reported_time data/godzina Ostatni raz usługa dziennika Hiperskala zgłosiła wartości.

Uwagi

Funkcja sys.dm_hs_database_log_rate dynamicznego zarządzania ma zastosowanie tylko do warstwy Hiperskala usługi Azure SQL Database.

W warstwie usługi Hiperskala usługi Azure SQL Database usługa dziennika zapewnia, że składniki rozproszone nie są daleko w tyle w przypadku stosowania dziennika transakcji. Jest to wymagane do utrzymania ogólnej kondycji i stabilności systemu. Gdy składniki znajdują się w tyle, a ich współczynnik zaległości jest mniejszy niż bieżąca szybkość generowania dziennika, usługa dziennika zmniejsza szybkość generowania dzienników w warstwie podstawowej. DMF sys.dm_hs_database_log_rate() może służyć do zrozumienia, który składnik powoduje zmniejszenie szybkości rejestrowania i w jakim zakresie oraz jak długo może trwać redukcja szybkości rejestrowania.

Aby uzyskać więcej informacji na temat redukcji szybkości rejestrowania, zobacz Diagnostyka wydajności w warstwie Hiperskala.

Permissions

Ta funkcja dynamicznego zarządzania wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI BAZY DANYCH .

Przykłady

A. Zwróć składnik powodujący zmniejszenie szybkości rejestrowania w określonej bazie danych

Poniższy przykład zwraca wiersz składnika powodujący zmniejszenie szybkości rejestrowania. Jeśli szybkość generowania dzienników nie zostanie zmniejszona przez żaden składnik, wiersz zostanie zwrócony dla podstawowego obliczeniowego, pokazujący maksymalną dozwoloną szybkość generowania dzienników dla bazy danych.

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. Zwracanie składników powodujących zmniejszenie szybkości rejestrowania

Po nawiązaniu połączenia z bazą danych w elastycznej puli poniższy przykład zwraca wiersz dla składnika powodującego zmniejszenie szybkości rejestrowania dla każdej bazy danych w puli, w której masz wystarczające uprawnienia. Po nawiązaniu połączenia z pojedynczą bazą danych zwraca wiersz dla bazy danych.

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