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;