sys.dm_os_performance_counters (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

Restituisce una riga per contatore delle prestazioni gestito dal server. Per informazioni su ogni contatore delle prestazioni, vedere Usare oggetti di SQL Server.

Nota

Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_os_performance_counters. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Nome colonna Tipo di dati Descrizione
object_name nchar(128) Categoria di appartenenza del contatore.
counter_name nchar(128) Nome del contatore. Per ottenere altre informazioni su un contatore, si tratta del nome dell'argomento da selezionare nell'elenco dei contatori in Usa oggetti di SQL Server.
instance_name nchar(128) Nome dell'istanza specifica del contatore. Spesso include il nome del database.
cntr_value bigint Valore corrente del contatore.

Nota: per i contatori al secondo, questo valore è cumulativo. Il valore relativo alla frequenza deve essere calcolato tramite il campionamento del valore a intervalli di tempo discreti. La differenza tra due valori di campionamento successivi è uguale alla frequenza dell'intervallo di tempo utilizzato.
cntr_type int Tipo di contatore definito dall'architettura di controllo delle prestazioni di Windows. Per altre informazioni sui tipi di contatori delle prestazioni WMI, vedere La documentazione di Windows Server o i tipi di contatore delle prestazioni di WMI sono disponibili nella documentazione.
pdw_node_id int Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW)

Identificatore del nodo in cui è attiva la distribuzione.

Osservazioni:

Se l'istanza di installazione di SQL Server non visualizza i contatori delle prestazioni del sistema operativo Windows, usare la query Transact-SQL seguente per verificare che i contatori delle prestazioni siano stati disabilitati.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Se il valore restituito è di 0 righe, i contatori delle prestazioni sono stati disabilitati. È quindi necessario esaminare il log di installazione e cercare l'errore 3409. Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. Questo indica che i contatori delle prestazioni non sono stati abilitati. Gli errori immediatamente precedenti all'errore 3409 dovrebbero indicare la causa principale per l'errore relativo all'abilitazione dei contatori delle prestazioni. Per altre informazioni sui file di log di installazione, vedere Visualizzare e leggere i file di log del programma di installazione di SQL Server.

I contatori delle prestazioni in cui il valore della cntr_type colonna è 65792 visualizzano solo uno snapshot dell'ultimo valore osservato, non una media.

I contatori delle prestazioni in cui il valore della cntr_type colonna è 272696320 o 272696576 visualizzare il numero medio di operazioni completate durante ogni secondo dell'intervallo di campionamento. I contatori di questo tipo misurano il tempo in tick dell'orologio di sistema. Ad esempio, per ottenere una lettura di tipo snapshot dell'ultimo secondo solo per i Buffer Manager:Lazy writes/sec contatori e Buffer Manager:Checkpoint pages/sec , è necessario confrontare il delta tra due punti di raccolta separati da un secondo.

I contatori delle prestazioni in cui il valore della cntr_type colonna è 537003264 visualizzare il rapporto tra un subset e il relativo set come percentuale. Ad esempio, il Buffer Manager:Buffer cache hit ratio contatore confronta il numero totale di riscontri nella cache e il numero totale di ricerche nella cache. Di conseguenza, per ottenere una lettura di tipo snapshot dell'ultimo secondo solo, è necessario confrontare il delta tra il valore corrente e il valore di base (denominatore) tra due punti di raccolta separati da un secondo. Il valore di base corrispondente è il contatore Buffer Manager:Buffer cache hit ratio base delle prestazioni in cui il valore della cntr_type colonna è 1073939712.

I contatori delle prestazioni in cui il valore della cntr_type colonna è 1073874176 visualizzare il numero di elementi elaborati in media, in base al rapporto tra gli elementi elaborati e il numero di operazioni. Ad esempio, i Locks:Average Wait Time (ms) contatori confrontano le attese di blocco al secondo con le richieste di blocco al secondo, per visualizzare la quantità media di tempo di attesa (in millisecondi) per ogni richiesta di blocco che ha generato un'attesa. Di conseguenza, per ottenere una lettura di tipo snapshot dell'ultimo secondo solo, è necessario confrontare il delta tra il valore corrente e il valore di base (denominatore) tra due punti di raccolta separati da un secondo. Il valore di base corrispondente è il contatore Locks:Average Wait Time Base delle prestazioni in cui il valore della cntr_type colonna è 1073939712.

I dati nella sys.dm_os_performance_counters DMV non vengono salvati in modo permanente dopo il riavvio del motore di database. Usare la colonna sqlserver_start_time in sys.dm_os_sys_info per trovare l'ora di avvio dell'ultimo motore di database.

Autorizzazione

In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE.

In database SQL obiettivi di servizio Basic, S0 e S1 e per i database nei pool elastici, è necessario l'account amministratore del server, l'account amministratore di Microsoft Entra o l'appartenenza al ruolo del ##MS_ServerStateReader## server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'adesione ruolo del server ##MS_ServerStateReader##.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.

Esempi

Nell'esempio seguente vengono restituiti tutti i contatori delle prestazioni che visualizzano i valori dei contatori snapshot.

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;  

Vedi anche

Viste a gestione dinamica correlate al sistema operativo SQL Server (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)