Megosztás a következőn keresztül:


sys.dm_os_performance_counters (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

A kiszolgáló által fenntartott teljesítményszámlálónkénti sort adja vissza. Az egyes teljesítményszámlálókról információért lásd: Use SQL Server Objects.

Megjegyzés:

Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a sys.dm_pdw_nodes_os_performance_countersnevet. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Oszlop név Adattípus Description
object_name nchar(128) Ez a kategória, amelyhez ez a számláló tartozik.
counter_name nchar(128) A pult neve. Ha többet szeretnél megtudni egy számlálóról, ez a téma neve, amit az Use SQL Server Objects számlálólistájából lehet választani.
instance_name nchar(128) A számláló konkrét példányának neve. Gyakran tartalmazza az adatbázis nevét.
cntr_value bigint A számláló aktuális értéke.

Jegyzet: Másodpercenkénti számlálókkal ez az érték összesített. A sebességértéket úgy kell kiszámítani, hogy az értéket diszkrét időközönként kell mintavételezni. A két egymást követő mintaérték közötti különbség megegyezik az alkalmazott időintervallum sebességével.
cntr_type int A számláló típusa, ahogyan a Windows teljesítményarchitektúrája definiálja. További információért a teljesítményszámláló típusokról lásd a WMI teljesítményszámláló típusokat a dokumentációban vagy a Windows Server dokumentációban.
pdw_node_id int A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)

Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található.

Megjegyzések

Ha az SQL Server telepítési példánya nem mutatja meg a Windows operációs rendszer teljesítményszámlálóit, használja az alábbi Transact-SQL lekérdezést, hogy megerősítse, a teljesítményszámlálókat letiltották.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Ha a visszaküldési érték 0 sor, az azt jelenti, hogy a teljesítményszámlálókat letiltották. Ezután nézd meg a beállítási naplót, és keresd a 3409-es hibát, Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. ami azt jelzi, hogy a teljesítményszámlálók nem voltak engedélyezve. A 3409 hiba előtti hibák jelezik a teljesítményszámláló engedélyezésének hibájának gyökérokát. További információért a beállítási naplófájlokról lásd: View and Read SQL Server Setup Log Files.

Azok a teljesítményszámlálók, ahol az cntr_type oszlop értéke 65792, csak az utolsó megfigyelt érték pillanatképét jelenítik meg, nem átlagot.

Azok a teljesítményszámlálók, ahol az cntr_type oszlop értéke 272696320 vagy 272696576, a mintaintervallum minden másodpercében végzett műveletek átlagszámát jelenítik meg. Az ilyen típusú számlálók az időt a rendszer óraóra ketyegésével mérték. Például, hogy csak az és Buffer Manager:Checkpoint pages/sec számláló utolsó másodpercét Buffer Manager:Lazy writes/sec pillanatképszerű olvassat kapj, összehasonlítani kell a delta-t két, egy másodperc távolságra lévő gyűjtőpont között.

Azok a teljesítményszámlálók, ahol az cntr_type oszlop értéke 537003264, százalékban jelenítik meg az alhalmaz és halmaz arányát. Például a Buffer Manager:Buffer cache hit ratio számláló összehasonlítja a gyorsítótár találatok összesített számát és a gyorsítótár-lekérdezések teljes számát. Ezért, hogy csak az utolsó másodperc pillanatképszerű olvasmását kapjuk, összehasonlítanod kell a jelenlegi érték és az alapérték (nevező) közötti delta-t két egy másodperces távolságra lévő gyűjtési pont között. A megfelelő alapérték a teljesítményszámláló Buffer Manager:Buffer cache hit ratio base , ahol az cntr_type oszlop értéke 1073939712.

A teljesítményszámlálók, ahol az cntr_type oszlopérték 1073874176, átlagosan hány tételt dolgoznak fel, az adott tételek aránya a műveletek számához. Például a Locks:Average Wait Time (ms) számlálók összehasonlítják a zárolási várakozásokat másodpercenként a zárolási kérések számával, hogy megmutassák az átlagos várakozási időt (milliszekundumokban) minden zárolási kérésre, amely várakozást eredményezett. Ezért, hogy csak az utolsó másodperc pillanatképszerű olvasmását kapjuk, összehasonlítanod kell a jelenlegi érték és az alapérték (nevező) közötti delta-t két egy másodperces távolságra lévő gyűjtési pont között. A megfelelő alapérték a teljesítményszámláló Locks:Average Wait Time Base , ahol az cntr_type oszlop értéke 1073939712.

A sys.dm_os_performance_counters DMV-ben lévő adatok nem maradnak fenn az adatbázis motor újraindítása után. A sqlserver_start_time oszlopával keresse meg az adatbázismotor utolsó indítási idejét.

Engedély

Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.

Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.

Példák

A következő példa minden olyan teljesítményszámlálót ad vissza, amely snapshot számláló értékeket jelenít meg.

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;  

Lásd még

SQL Server operációs rendszerhez kapcsolódó dinamikus felügyeleti nézetek (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)