Partilhar via


sys.dm_db_resource_stats (Banco de Dados SQL do Azure)

Aplica-se a: Banco de Dados SQL do Azure

Retorna o consumo de CPU, E/S e memória para um banco de dados no Banco de Dados SQL do Azure. Existe uma linha a 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 há suporte na Instância Gerenciada de SQL do Azure. Em vez disso, use a exibição sys.server_resource_stats catálogo.

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 decimais (5,2) Utilização média de computação, em porcentagem, do limite da camada de serviço.
avg_data_io_percent decimais (5,2) Utilização média de E/S de dados em porcentagem do limite da camada de serviço. Para bancos de dados de Hiperescala, consulte E/S de dados nas estatísticas de utilização de recursos.
avg_log_write_percent decimais (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 decimais (5,2) Utilização média de memória, em porcentagem, do limite da camada de serviço.

Isso inclui a memória usada para páginas do pool de buffers e armazenamento de objetos OLTP in-memory.
xtp_storage_percent decimais (5,2) Utilização de armazenamento para OLTP in-memory 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 in-memory: tabelas com otimização de memória, índices e variáveis de tabela. Ele também inclui memória usada para processar operações ALTER TABLE em tabelas com otimização de memória.

Retorna 0 se o OLTP in-memory não for usado no banco de dados.
max_worker_percent decimais (5,2) Máximo de trabalhos simultâneos (solicitações) em porcentagem do limite da camada de serviço do banco de dados.
max_session_percent decimais (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 máxima atual de DTU do banco de dados para esse banco de dados durante esse intervalo. Para bancos de dados que usam o modelo baseado em vCore, essa coluna é NULL.
cpu_limit decimais (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, essa coluna é NULL.
avg_instance_cpu_percent decimais (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 de instâncias. Relatado com granularidade de um minuto e inclui a utilização da CPU por cargas de trabalho internas e do usuário.
avg_instance_memory_percent decimais (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 pelo usuário e cargas de trabalho internas.
avg_login_rate_percent decimais (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 - Secundário de alta disponibilidade (HA)
2 - Encaminhador de replicação geográfica
3 - Réplica nomeada

Relatórios 1 quando conectado com ReadOnly intenção a qualquer secundário legível. Se estiver se conectando a um secundário geográfico sem especificar ReadOnly a intenção, os relatórios 2 refletirão 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

Essa exibição requer VIEW DATABASE STATE permissão.

Comentários

Os dados retornados por sys.dm_db_resource_stats são expressos como 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 sofrido failover para outro servidor nos últimos 60 minutos, a exibição retornará apenas os dados desde o failover.

Para obter uma exibição menos granular desses dados com período de retenção mais longo, use a exibição de catálogo no Banco de Dados SQL do sys.resource_stats 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 percentuais 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 no momento no Banco de Dados SQL do Azure ou na Instância Gerenciada de 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;