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 Piattaforma di strumenti analitici (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
.
Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerStateReader##
al ruolo del 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)