sys.dm_db_resource_stats (Banco de Dados SQL do Azure)

Aplica-se a:Banco de Dados SQL do Azure

Retorna CPU, E/S e consumo de memória para um banco de dados no Banco de Dados SQL do Azure. Existe uma linha para cada 15 segundos, mesmo que não haja atividade. Os dados históricos são mantidos por cerca de uma hora.

Observação

sys.dm_db_resource_stats não tem suporte na Instância Gerenciada SQL do Azure. Em vez disso, use o modo de exibição de catálogo sys.server_resource_stats .

Colunas Tipo de Dados Descrição
end_time datetime Hora UTC que indica o término do intervalo de relatório atual.
avg_cpu_percent decimal (5,2) Utilização média de computação, em porcentagem, do limite da camada de serviço.
avg_data_io_percent decimal (5,2) Utilização média de E/S de dados em porcentagem do limite da camada de serviço. Para bancos de dados Hyperscale, consulte E/S de dados em estatísticas de utilização de recursos.
avg_log_write_percent decimal (5,2) Média de gravações de log de transações (em MB/s) como porcentagem do limite da camada de serviço.
avg_memory_usage_percent decimal (5,2) Utilização média de memória, em porcentagem, do limite da camada de serviço.

Isso inclui memória usada para páginas de pool de buffer e armazenamento de objetos OLTP na memória.
xtp_storage_percent decimal (5,2) Utilização de armazenamento para OLTP na memória como uma porcentagem do limite do pool no final do intervalo de relatório. Isso inclui a memória usada para armazenamento dos seguintes objetos OLTP na memória: tabelas otimizadas para memória, índices e variáveis de tabela. Ele também inclui memória usada para processar operações ALTER TABLE em tabelas otimizadas para memória.

Retorna 0 se OLTP na memória não for usado no banco de dados.
max_worker_percent decimal (5,2) Máximo de trabalhadores simultâneos (solicitações) em porcentagem do limite da camada de serviço do banco de dados.
max_session_percent decimal (5,2) Máximo de sessões simultâneas em porcentagem do limite da camada de serviço do banco de dados.
dtu_limit int Configuração atual de DTU de banco de dados máximo para esse banco de dados durante esse intervalo. Para bancos de dados que usam o modelo baseado em vCore, esta coluna é NULL.
cpu_limit decimal (5,2) Número de vCores para esse banco de dados durante esse intervalo. Para bancos de dados que usam o modelo baseado em DTU, esta coluna é NULL.
avg_instance_cpu_percent decimal (5,2) Utilização média da CPU pela instância do mecanismo de banco de dados que hospeda o pool, como uma porcentagem do limite da instância. Relatado em granularidade de um minuto e inclui a utilização da CPU por cargas de trabalho internas e do usuário.
avg_instance_memory_percent decimal (5,2) Uso médio de memória para a instância do SQL Server que hospeda o banco de dados. Inclui a utilização de memória por cargas de trabalho internas e de usuário.
avg_login_rate_percent decimal (5,2) Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não é garantida.
replica_role int Representa a função de réplica atual.

0 - Primário
1 - Alta disponibilidade (HA) secundária
2 - Encaminhador de replicação geográfica
3 - Réplica nomeada

Relatórios 1 quando conectados com ReadOnly intenção a qualquer secundário legível. Se estiver se conectando a um geo-secundário sem especificar ReadOnly a intenção, os relatórios 2 refletem uma conexão com um encaminhador de replicação geográfica. Se estiver se conectando a uma réplica nomeada sem especificar ReadOnly a intenção, os relatórios 3.

Dica

Para obter mais contexto sobre esses limites e camadas de serviço, consulte os tópicos Camadas de serviço, Ajustar manualmente o desempenho da consulta no Banco de dados SQL do Azure e Limites de recursos e governança de recursos do Banco de dados SQL.

Permissões

Esse modo de exibição requer VIEW DATABASE STATE permissão.

Comentários

Os dados retornados por são expressos como sys.dm_db_resource_stats uma porcentagem dos limites máximos permitidos para a camada de serviço/nível de desempenho que você está executando.

Se o banco de dados tiver sido submetido a failover para outro servidor nos últimos 60 minutos, a exibição retornará apenas os dados durante o tempo desde o failover.

Para obter uma exibição menos granular desses dados com um período de retenção mais longo, use o modo de exibição de sys.resource_stats catálogo no Banco de Dados SQL do Azure. Essa exibição captura dados a cada 5 minutos e mantém dados históricos por 14 dias. Para obter mais informações, consulte sys.resource_stats.

Quando um banco de dados é membro de um pool elástico, as estatísticas de recursos apresentadas como valores de porcentagem são expressas como a porcentagem do limite máximo para os bancos de dados, conforme definido na configuração do pool elástico.

Exemplos

O exemplo a seguir retorna dados de utilização de recursos ordenados pela hora mais recente para o banco de dados conectado atualmente no Banco de Dados SQL do Azure ou na Instância Gerenciada SQL do Azure.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

O exemplo a seguir identifica o consumo médio de DTU para o banco de dados do usuário durante a última hora, em termos de percentual do limite máximo de DTU permitido no nível de desempenho. Considere aumentar o nível de desempenho conforme essas porcentagens se aproximarem de consistentemente de 100%.

SELECT end_time,
  (SELECT Max(v)
   FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS
   value(v)) AS [avg_DTU_percent]
FROM sys.dm_db_resource_stats;

O exemplo a seguir retorna os valores médio e máximo de percentual de CPU, E/S de dados e log e consumo de memória ao longo da última hora.

SELECT
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
    AVG(avg_log_write_percent) AS 'Average Log Write I/O Throughput Utilization In Percent',
    MAX(avg_log_write_percent) AS 'Maximum Log Write I/O Throughput Utilization In Percent',
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;