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_id
spé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 = 0Storage = 1Primary = 2Replica = 4LocalDestage = 5Destage = 6 GeoReplica = 10StorageCheckpoint = 12MigrationTarget = 14Lorsque 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 connuStorage = Serveur(s) de pagePrimary = Réplica de calcul principalReplica = Réplica de calcul secondaire, tel qu’un réplica haute disponibilité (HA) ou un réplica nommé.LocalDestage = Service de journalDestage = Stockage des journaux à long termeGeoReplica = Réplica géo-secondaireStorageCheckpoint = Un point de contrôle sur un serveur de pagesMigrationTarget = 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);
Contenu connexe
- sys.dm_database_replica_states (Azure SQL Database)
- sys.dm_exec_requests (Transact-SQL)
-
sys.dm_os_wait_stats (Transact-SQL) - DATABASEPROPERTYEX (Transact-SQL)