Partilhar via


sys.dm_os_performance_counters (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Retorna uma linha por contador de desempenho mantido pelo servidor. Para obter informações sobre cada contador de desempenho, consulte Usar objetos do SQL Server.

Observação

Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_os_performance_counters. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Nome da coluna Tipo de dados Descrição
object_name nchar(128) Categoria para a qual este contador pertence.
counter_name nchar(128) Nome do contador. Para obter mais informações sobre um contador, esse é o nome do tópico a ser selecionado na lista de contadores em Usar objetos do SQL Server.
instance_name nchar(128) Nome da instância específica do contador. Normalmente, contém o nome do banco de dados.
cntr_value bigint Valor atual do contador.

Observação: para contadores por segundo, esse valor é cumulativo. O valor de taxa deve ser calculado pela amostragem do valor a intervalos de tempo curtos. A diferença entre qualquer dois valores de amostra sucessivos é igual à taxa para o intervalo de tempo usado.
cntr_type int Tipo de contador conforme definido pela arquitetura de desempenho do Windows. Consulte Tipos de contador de desempenho WMI no Docs ou a documentação do Windows Server para obter mais informações sobre tipos de contador de desempenho.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que essa distribuição está ativada.

Comentários

Se a instância de instalação do SQL Server não exibir os contadores de desempenho do sistema operacional Windows, use a consulta Transact-SQL a seguir para confirmar se os contadores de desempenho foram desabilitados.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Se o valor de retorno for 0 linha, significa que os contadores de desempenho foram desabilitados. Em seguida, você deve examinar o log de instalação e procurar o erro 3409, Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. Isso indica que os contadores de desempenho não foram ativados. Os erros imediatamente antes do erro 3409 devem indicar a causa da falha na habilitação dos contadores de desempenho. Para obter mais informações sobre arquivos de log de instalação, consulte Exibir e ler arquivos de log de instalação do SQL Server.

Os contadores de desempenho em que o valor da cntr_type coluna é 65792 exibem apenas um instantâneo do último valor observado, não uma média.

Os contadores de desempenho em que o valor da cntr_type coluna é 272696320 ou 272696576 exibir o número médio de operações concluídas durante cada segundo do intervalo de amostragem. Contadores desse tipo medem o tempo em tiques do relógio do sistema. Por exemplo, para obter uma leitura semelhante a um instantâneo do último segundo apenas para os Buffer Manager:Lazy writes/sec contadores e Buffer Manager:Checkpoint pages/sec , você deve comparar o delta entre dois pontos de coleta com um segundo de diferença.

Os contadores de desempenho em que o valor da cntr_type coluna é 537003264 exibir a proporção de um subconjunto para seu conjunto como uma porcentagem. Por exemplo, o Buffer Manager:Buffer cache hit ratio contador compara o número total de ocorrências de cache e o número total de pesquisas de cache. Dessa forma, para obter uma leitura semelhante a um instantâneo apenas do último segundo, você deve comparar o delta entre o valor atual e o valor base (denominador) entre dois pontos de coleta separados por um segundo. O valor base correspondente é o contador Buffer Manager:Buffer cache hit ratio base de desempenho em que o valor da cntr_type coluna é 1073939712.

Os contadores de desempenho em que o valor da cntr_type coluna é 1073874176 exibir quantos itens são processados em média, como uma proporção dos itens processados para o número de operações. Por exemplo, os Locks:Average Wait Time (ms) contadores comparam as esperas de bloqueio por segundo com as solicitações de bloqueio por segundo, para exibir a quantidade média de tempo de espera (em milissegundos) para cada solicitação de bloqueio que resultou em uma espera. Dessa forma, para obter uma leitura semelhante a um instantâneo apenas do último segundo, você deve comparar o delta entre o valor atual e o valor base (denominador) entre dois pontos de coleta separados por um segundo. O valor base correspondente é o contador Locks:Average Wait Time Base de desempenho em que o valor da cntr_type coluna é 1073939712.

Os dados na sys.dm_os_performance_counters DMV não são persistidos após a reinicialização do mecanismo de banco de dados. Use a coluna sqlserver_start_time em sys.dm_os_sys_info para localizar a última hora de inicialização do mecanismo de banco de dados.

Permissão

No SQL Server e na Instância Gerenciada de SQL, requer a permissão VIEW SERVER STATE.

Nos objetivos de serviço Básico, S0 e S1 do Banco de Dados SQL e para bancos de dados em pools elásticos, a conta de administrador do servidor, a conta de administrador do Microsoft Entra ou a ##MS_ServerStateReader## associação na função de servidor são necessárias. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader## são necessárias.

Permissões do SQL Server 2022 e posteriores

É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Exemplos

O exemplo a seguir retorna todos os contadores de desempenho que exibem valores de contador de instantâneo.

SELECT object_name, counter_name, instance_name, cntr_value, cntr_type  
FROM sys.dm_os_performance_counters
WHERE cntr_type = 65792 OR cntr_type = 272696320 OR cntr_type = 537003264;  

Confira também

Exibições de gerenciamento dinâmico relacionadas ao sistema operacional do SQL Server (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)