Partager via


sys.dm_hs_database_log_rate (Transact-SQL)

s’applique à : Azure SQL Database

Chaque ligne de jeu de résultats retourne un composant qui contrôle (réduit) le taux de génération de journaux dans une base de données Hyperscale. Il existe plusieurs composants dans l’architecture de niveau Hyperscale qui pourraient contribuer à la réduction du taux de génération de journaux.

Certains types de composants, tels que les réplicas de calcul secondaires ou les serveurs de pages, peuvent réduire temporairement le taux de génération de journaux sur le réplica de calcul principal pour garantir l’intégrité et la stabilité globales de la base de données.

Si le taux de génération de journaux n’est pas réduit par un composant, une ligne est retournée pour le composant réplica de calcul principal, affichant le taux maximal de génération de journaux autorisé pour la base de données.

Cette fonction de gestion dynamique retourne des lignes uniquement lorsque la session est connectée au réplica principal.

Note

La fonction de gestion dynamique sys.dm_hs_database_log_rate s’applique actuellement au niveau Hyperscale Azure SQL Database uniquement.

Syntaxe

sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

Arguments

database_id

database_id est un entier entier représentant l’ID de base de données, sans valeur par défaut. Les entrées valides sont un ID de base de données ou NULL.

database_idspécifié : retourne une ligne pour cette base de données spécifique.

NULL: pour une base de données unique, retourne une ligne pour la base de données active. Pour une base de données dans un pool élastique, retourne des lignes pour toutes les bases de données du pool où l’appelant dispose de suffisamment d’autorisations .

La fonction intégrée DB_ID peut être spécifiée.

Table retournée

Nom de colonne Type de données Description
database_id int NOT NULL Identificateur de la base de données. Les valeurs sont uniques au sein d’une base de données unique ou d’un pool élastique, mais pas dans un serveur logique.
replica_id uniqueidentifier NOT NULL Identificateur d’un réplica de calcul qui correspond à la colonne replica_id dans sys.dm_database_replica_states. NULL quand component_id correspond à un serveur de pages Hyperscale.

Cette valeur est retournée par l’appel de fonction DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') lorsqu’elle est connectée au réplica.
file_id int NULL ID du fichier de base de données dans la base de données qui correspond au serveur de pages limitant le taux de génération de journaux. Est renseigné uniquement si le rôle est le serveur de pages, sinon retourne NULL. Cette valeur correspond à la colonne file_id dans sys.database_files.
current_max_log_rate bigint NOT NULL Limite de débit maximale actuelle pour le taux de génération de journaux sur le réplica de calcul principal, en octets/s. Si aucun composant ne réduit le taux de génération de journaux, signale la limite de débit de génération de journaux pour une base de données Hyperscale.
component_id uniqueidentifier NOT NULL Identificateur unique d’un composant Hyperscale, tel qu’un serveur de pages ou un réplica de calcul.
role smallint NOT NULL Tous les rôles de composant existants qui peuvent réduire la génération de journaux.

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 14
Lorsque le taux de génération de journaux est limité, les types d’attente suivants correspondant à chaque rôle peuvent être observés sur le réplica de calcul principal :
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
Pour plus d’informations, consultez attente de limitation du débit des journaux
role_desc nvarchar(60) NOT NULL Unknown = Le rôle de composant n’est pas connu
Storage = Serveur(s) de page
Primary = Réplica de calcul principal
Replica = Réplica de calcul secondaire, tel qu’un réplica haute disponibilité (HA) ou un réplica nommé.
LocalDestage = Service de journal
Destage = Stockage des journaux à long terme
GeoReplica = Réplica géo-secondaire
StorageCheckpoint = Un point de contrôle sur un serveur de pages
MigrationTarget = La base de données cible pendant la migration inverse d’Hyperscale vers une base de données non Hyperscale.
catchup_rate bigint NOT NULL Taux de rattrapage en octets/s. Retourne zéro lorsque le taux de journal n’est pas réduit.
catchup_bytes bigint NOT NULL Quantité de journal des transactions, en octets, qu’un composant doit appliquer pour rattraper le réplica de calcul principal. Retourne 0 lorsque le composant est rattrapé.
last_reported_time datetime Dernière fois que le service de journal Hyperscale a signalé des valeurs.

Remarques

Dans le niveau de service Hyperscale d’Azure SQL Database, le service de journal garantit que les composants distribués ne sont pas loin derrière l’application du journal des transactions. Cela est nécessaire pour maintenir l’intégrité et la stabilité globales du système. Lorsque les composants sont derrière et que leur taux de rattrapage est inférieur au taux de génération de journaux actuel, le service de journal réduit le taux de génération de journaux sur le serveur principal. La sys.dm_hs_database_log_rate() DMF peut être utilisée pour comprendre quel composant provoque la réduction du taux de journalisation et dans quelle mesure, et pendant combien de temps la réduction du taux de journalisation peut durer.

Pour plus de contexte sur la réduction du taux de journalisation, consultez diagnostics de performances dans Hyperscale.

Autorisations

Cette fonction de gestion dynamique nécessite 'autorisation VIEW DATABASE PERFORMANCE STATE.

Exemples

Un. Retourner le composant à l’origine d’une réduction du taux de journalisation dans une base de données spécifique

L’exemple suivant retourne une ligne pour le composant à l’origine de la réduction du taux de journalisation. Si le taux de génération de journaux n’est pas réduit par un composant, une ligne est retournée pour le calcul principal, affichant le taux maximal de génération de journaux autorisé pour la base de données.

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. Retourner les composants à l’origine de la réduction du taux de journalisation

Lorsqu’elle est connectée à une base de données dans un pool élastique, l’exemple suivant retourne une ligne pour le composant à l’origine de la réduction du taux de journalisation, pour chaque base de données du pool où vous disposez d’autorisations suffisantes. Lorsqu’elle est connectée à une base de données unique, retourne la ligne de la base de données.

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