Delen via


sys.dm_os_performance_counters (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Retourneert een rij per prestatiemeteritem die wordt onderhouden door de server. Voor informatie over elke prestatieteller, zie Gebruik SQL Server Objects.

Opmerking

Gebruik de naam sys.dm_pdw_nodes_os_performance_countersom dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW). Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Kolomnaam Gegevenstype Description
object_name nchar(128) Categorie waartoe deze teller behoort.
counter_name nchar(128) Naam van de balie. Om meer informatie over een teller te krijgen, is dit de naam van het onderwerp dat je kunt kiezen uit de lijst met tellers in Use SQL Server Objects.
instance_name nchar(128) Naam van het specifieke exemplaar van de counter. Bevat vaak de naam van de database.
cntr_value bigint Huidige waarde van de teller.

Notitie: Voor per-seconde tellers is deze waarde cumulatief. De snelheidswaarde moet worden berekend door de waarde op discrete tijdsintervallen te bemonsteren. Het verschil tussen twee opeenvolgende steekproefwaarden is gelijk aan de snelheid voor het gebruikte tijdsinterval.
cntr_type int Type teller zoals gedefinieerd door de Windows-prestatiearchitectuur. Zie WMI Performance Counter Types in Docs of je Windows Server-documentatie voor meer informatie over performance counter-types.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

Opmerkingen

Als de installatie-instantie van SQL Server de prestatietellers van het Windows-besturingssysteem niet weergeeft, gebruik dan de volgende Transact-SQL query om te bevestigen dat prestatietellers zijn uitgeschakeld.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Als de returnwaarde 0 rijen is, betekent dit dat de prestatietellers zijn uitgeschakeld. Je moet dan in het setuplog kijken en zoeken naar fout 3409, Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. dit geeft aan dat prestatietellers niet waren ingeschakeld. De fouten direct vóór de 3409-fout zouden de oorzaak moeten aangeven van het falen van het inschakelen van de prestatieteller. Voor meer informatie over setup-logbestanden, zie View and Read SQL Server Setup Log Files.

Prestatietellers waarbij de cntr_type kolomwaarde 65792 is, tonen alleen een momentopname van de laatst waargenomen waarde, geen gemiddelde.

Prestatietellers waarbij de cntr_type kolomwaarde 272696320 of 272696576 is, tonen het gemiddelde aantal uitgevoerde bewerkingen per seconde van het steekproefinterval. Tellers van dit type meten de tijd in tikken van de systeemklok. Om bijvoorbeeld een snapshot-achtige meting van de laatste seconde alleen voor de Buffer Manager:Lazy writes/sec en Buffer Manager:Checkpoint pages/sec tellers te krijgen, moet je de delta vergelijken tussen twee verzamelpunten die één seconde uit elkaar liggen.

Prestatietellers waarbij de cntr_type kolomwaarde 537003264 wordt weergegeven, tonen de verhouding van een deelverzameling tot de verzameling als percentage. De Buffer Manager:Buffer cache hit ratio teller vergelijkt bijvoorbeeld het totale aantal cache-hits met het totale aantal cache-opzoekingen. Om een snapshot-achtige lezing van alleen de laatste seconde te krijgen, moet je de delta tussen de huidige waarde en de basiswaarde (noemer) vergelijken tussen twee verzamelpunten die één seconde uit elkaar liggen. De overeenkomstige basiswaarde is de prestatieteller Buffer Manager:Buffer cache hit ratio base waarbij de cntr_type kolomwaarde 1073939712 is.

Prestatietellers waarbij de cntr_type kolomwaarde 1073874176 is weergegeven, tonen gemiddeld hoeveel artikelen er worden verwerkt, als verhouding van de verwerkte items tot het aantal bewerkingen. De Locks:Average Wait Time (ms) teller vergelijkt bijvoorbeeld de lock-wachttijden per seconde met de lockverzoeken per seconde, om de gemiddelde wachttijd (in milliseconden) voor elk lock-verzoek dat tot een wachttijd leidde weer te geven. Om een snapshot-achtige lezing van alleen de laatste seconde te krijgen, moet je de delta tussen de huidige waarde en de basiswaarde (noemer) vergelijken tussen twee verzamelpunten die één seconde uit elkaar liggen. De overeenkomstige basiswaarde is de prestatieteller Locks:Average Wait Time Base waarbij de cntr_type kolomwaarde 1073939712 is.

Gegevens in de sys.dm_os_performance_counters DMV blijven niet bewaard nadat de database-engine is herstart. Gebruik de kolom sqlserver_start_time in sys.dm_os_sys_info om de laatste opstarttijd van de database-engine te vinden.

Toestemming

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Voorbeelden

Het volgende voorbeeld geeft alle prestatietellers terug die snapshot-tellers weergeven.

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;  

Zie ook

Dynamische beheerweergaven van SQL Server-besturingssysteem (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)