Partilhar via


sys.dm_db_resource_stats

Aplica-se a:Azure SQL DatabaseBase de dados SQL no Microsoft Fabric

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 aproximadamente 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 sys.server_resource_stats modo de exibição de catálogo.

Columns Tipo de dados Description
end_time datetime A hora UTC indica o fim 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 de hiperescala, 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 no 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 percentagem do limite do nível de serviço.

Isso inclui memória usada para páginas de pool de buffer e armazenamento de In-Memory objetos OLTP.
xtp_storage_percent decimal (5,2) A utilização do armazenamento para In-Memory OLTP como uma porcentagem do limite do pool no final do intervalo de relatórios. Isso inclui 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 In-Memory OLTP 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 máxima de DTU do banco de dados para este 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 este 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 de instância. Relatado em granularidade de um minuto e inclui a utilização da CPU por cargas de trabalho internas e de 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 suportado. 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 ligados intencionalmente ReadOnly a qualquer secundário legível. Se estiver se conectando a um geosecundário 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, informará 3.

Permissions

Esta vista requer VIEW DATABASE STATE permissão.

Observações

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 feito failover para outro servidor nos últimos 60 minutos, a exibição retornará dados apenas pelo tempo decorrido desde o failover.

Para obter uma exibição menos granular desses dados com um período de retenção mais longo, use a exibição de sys.resource_stats catálogo no Banco de Dados SQL do Azure. Esta vista captura dados a cada 5 minutos e mantém os dados históricos durante 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.

Examples

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 em termos de uma porcentagem do limite máximo permitido de DTU no nível de desempenho para o banco de dados de usuários na última hora. Considere aumentar o nível de desempenho à medida que essas porcentagens se aproximam de 100% de forma consistente.

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 para porcentagem de CPU, E/S de dados e log e consumo de memória na ú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;