Partilhar via


sys.dm_hs_database_log_rate (Transact-SQL)

Aplica-se a: do Banco de Dados SQL do Azure

A sys.dm_hs_database_log_rate função de gerenciamento dinâmico (DMF) retorna informações sobre a taxa de geração de log no Hiperdimensionamento do Banco de Dados SQL do Azure.

Cada linha no conjunto de resultados representa um componente que controla (reduz) a taxa de geração de logs em um banco de dados Hyperscale. Há vários componentes na arquitetura de camada Hyperscale que podem reduzir a taxa de geração de logs para manter o desempenho do banco de dados estável e equilibrado.

Certos tipos de componentes, como réplicas de computação secundárias ou servidores de página, podem reduzir temporariamente a taxa de geração de logs na réplica de computação primária para garantir a integridade e a estabilidade gerais do banco de dados.

Se a taxa de geração de log não for reduzida por nenhum componente, uma linha será retornada para o componente de réplica de computação primário, mostrando a taxa máxima de geração de log permitida para o banco de dados.

Essa função de gerenciamento dinâmico retorna linhas somente quando a sessão está conectada à réplica primária.

Sintaxe

sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

Arguments

database_id

database_id é um inteiro que representa a ID do banco de dados, sem valor padrão. As entradas válidas são um ID de banco de dados ou NULL.

Quando um database_id é fornecido, sys.dm_hs_database_log_rate retorna uma linha para esse banco de dados específico.

Quando não fornecido ou quando NULL é fornecido, para um único banco de dados, retorna uma linha para o banco de dados atual. Para um banco de dados em um pool elástico, retorna linhas para todos os bancos de dados no pool onde o chamador tem permissões suficientes.

A função interna DB_ID pode ser especificada.

Tabela retornada

Nome da coluna Tipo de dados Description
database_id Int NÃO NULO Identificador da base de dados. Os valores são exclusivos dentro de um único banco de dados ou um pool elástico, mas não dentro de um servidor lógico.
replica_id uniqueidentifier NÃO NULO Identificador de uma réplica de computação que corresponde à replica_id coluna em sys.dm_database_replica_states. NULL quando component_id corresponde a um servidor de página Hyperscale.

Esse valor é retornado pela chamada de DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') função quando conectado à réplica.
file_id Int NULO ID do arquivo de banco de dados dentro do banco de dados que corresponde ao servidor de página que limita a taxa de geração de log. Será preenchido somente se a função for servidor de página, caso contrário, retornará NULL. Este valor corresponde à file_id coluna em sys.database_files.
current_max_log_rate bigint NÃO NULO O limite atual da taxa máxima de log para a taxa de geração de log na réplica de computação primária, em bytes/seg. Se nenhum componente estiver reduzindo a taxa de geração de log, informará o limite de taxa de geração de log para um banco de dados Hyperscale.
component_id uniqueidentifier NÃO NULO Um identificador exclusivo de um componente Hyperscale, como um servidor de página ou uma réplica de computação.
role Smallint NÃO NULO Todas as funções de componentes existentes que podem reduzir a geração de logs.

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 14
Quando a taxa de geração de log é limitada, os seguintes tipos de espera correspondentes a cada função podem ser observados na réplica de computação primária:
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
Para obter mais informações, consulte Esperas de limitação da taxa de log
role_desc Nvarchar(60) NÃO NULO Unknown = A função do componente não é conhecida
Storage = Servidor(es) de página
Primary = Réplica de computação primária
Replica = Réplica de computação secundária, como uma réplica de alta disponibilidade (HA) ou uma réplica nomeada.
LocalDestage = Serviço de registo
Destage = Armazenamento de log de longo prazo
GeoReplica = Réplica geo-secundária
StorageCheckpoint = Um ponto de verificação em um servidor de página
MigrationTarget = O banco de dados de destino durante a migração reversa de um banco de dados Hyperscale para um banco de dados não-Hyperscale.
catchup_rate bigint NÃO NULO Taxa de recuperação em bytes/seg. Retorna zero quando a taxa de log não é reduzida.
catchup_bytes bigint NÃO NULO A quantidade de log de transações, em bytes, que um componente deve aplicar para alcançar a réplica de computação primária. Retorna 0 quando o componente é recuperado.
last_reported_time datetime A última vez que o serviço de log Hyperscale relatou valores.

Observações

A sys.dm_hs_database_log_rate função de gerenciamento dinâmico se aplica somente à camada Hyperscale do Banco de Dados SQL do Azure.

Na camada de serviço Hyperscale do Banco de Dados SQL do Azure, o serviço de log garante que os componentes distribuídos não fiquem muito atrasados na aplicação do log de transações. Isso é necessário para manter a integridade e a estabilidade gerais do sistema. Quando os componentes estão atrasados e sua taxa de recuperação é menor do que a taxa de geração de log atual, o serviço de log reduz a taxa de geração de log no primário. O sys.dm_hs_database_log_rate() DMF pode ser usado para entender qual componente está causando a redução na taxa de log e em que medida, e por quanto tempo a redução da taxa de log pode durar.

Para obter mais contexto sobre a redução da taxa de log, consulte Diagnóstico de desempenho no Hyperscale.

Permissions

Esta função de gerenciamento dinâmico requer a permissão VIEW DATABASE PERFORMANCE STATE .

Examples

A. Retornar o componente que causa a redução da taxa de log em um banco de dados específico

O exemplo a seguir retorna uma linha para o componente que causa a redução da taxa de log. Se a taxa de geração de log não for reduzida por nenhum componente, uma linha será retornada para a computação primária, mostrando a taxa máxima de geração de log permitida para o banco de dados.

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. Retornar os componentes que causam redução da taxa de log

Quando conectado a um banco de dados em um pool elástico, o exemplo a seguir retorna uma linha para o componente que causa a redução da taxa de log, para cada banco de dados no pool em que você tem permissões suficientes. Quando conectado a um único banco de dados, retorna a linha do banco de dados.

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