sys.dm_os_performance_counters (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar en rad per prestandaräknare som underhålls av servern. För information om varje prestandaräknare, se Använd SQL Server Objects.

Anmärkning

Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_os_performance_counters. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Kolumnnamn Datatyp Description
object_name nchar(128) Kategori som denna räknare tillhör.
counter_name nchar(128) Namnet på disken. För att få mer information om en räknare är detta namnet på ämnet att välja från listan över räknare i Använd SQL Server Objects.
instance_name nchar(128) Namnet på den specifika instansen av räknaren. Innehåller ofta databasens namn.
cntr_value bigint Nuvarande värde på räknaren.

Not: För per sekund-räknare är detta värde kumulativt. Hastighetsvärdet måste beräknas genom att ta prov på värdet vid diskreta tidsintervall. Skillnaden mellan två på varandra följande provvärden är lika med hastigheten för det använda tidsintervallet.
cntr_type int Typ av räknare som definieras av Windows prestandaarkitektur. Se WMI Performance Counter Types i Docs eller din Windows Server-dokumentation för mer information om prestandaräknartyper.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.

Anmärkningar

Om installationsinstansen av SQL Server inte visar prestandaräknarna för Windows-operativsystemet, använd följande Transact-SQL fråga för att bekräfta att prestandaräknarna har inaktiverats.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Om returvärdet är 0 rader betyder det att prestandaräknarna har inaktiverats. Du bör sedan titta på installationsloggen och söka efter fel 3409, Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. detta indikerar att prestandaräknare inte var aktiverade. Felen omedelbart före 3409-felet bör indikera grundorsaken till att prestandaräknarens aktivering inte fungerar. För mer information om installationsloggfiler, se Visa och läs SQL Server Setup Log Files.

Prestandaräknare där kolumnvärdet cntr_type är 65792 visar endast en ögonblicksbild av det senast observerade värdet, inte ett genomsnitt.

Prestandaräknare där kolumnvärdet cntr_type är 272696320 eller 272696576 visar det genomsnittliga antalet operationer som utförts under varje sekund av stickprovsintervallet. Räknare av denna typ mäter tiden i tick av systemklockan. Till exempel, för att få en snapshot-liknande avläsning av sista sekunden endast för Buffer Manager:Lazy writes/sec and-räknarna Buffer Manager:Checkpoint pages/sec , måste du jämföra deltat mellan två insamlingspunkter som ligger en sekund ifrån varandra.

Prestandaräknare där kolumnvärdet cntr_type är 537003264 visar förhållandet mellan en delmängd och dess mängd som procent. Till exempel Buffer Manager:Buffer cache hit ratio jämför räknaren det totala antalet cacheträffar med det totala antalet cacheuppslag. För att få en snapshot-liknande avläsning av endast sista sekunden måste du jämföra deltat mellan det aktuella värdet och basvärdet (nämnaren) mellan två samlingspunkter som ligger en sekund ifrån varandra. Det motsvarande basvärdet är prestandaräknaren Buffer Manager:Buffer cache hit ratio base där kolumnvärdet cntr_type är 1073939712.

Prestandaräknare där kolumnvärdet cntr_type är 1073874176 visar hur många objekt som i genomsnitt behandlas, som en kvot mellan de behandlade artiklar och antalet operationer. Till exempel Locks:Average Wait Time (ms) jämför räknarna låsväntan per sekund med låsförfrågningar per sekund, för att visa den genomsnittliga väntetiden (i millisekunder) för varje låsförfrågan som resulterade i en väntan. För att få en snapshot-liknande avläsning av endast sista sekunden måste du jämföra deltat mellan det aktuella värdet och basvärdet (nämnaren) mellan två samlingspunkter som ligger en sekund ifrån varandra. Det motsvarande basvärdet är prestandaräknaren Locks:Average Wait Time Base där kolumnvärdet cntr_type är 1073939712.

Data i sys.dm_os_performance_counters DMV sparas inte efter att databasmotorn startats om. Använd kolumnen sqlserver_start_time i sys.dm_os_sys_info för att hitta den senaste starttiden för databasmotorn.

Tillåtelse

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Examples

Följande exempel returnerar alla prestandaräknare som visar snapshot-räknarvärden.

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;  

Se även

SQL Server-operativsystemrelaterade dynamiska hanteringsvyer (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)