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


sys.dm_exec_procedure_stats (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

Visszaadja az aggregált teljesítménystatisztikákat a gyorsatározott tárolt eljárásokhoz. A nézet minden gyorsítótározott eljárástervhez egy sort ad vissza, és a sor élettartama akkor, amíg a tárolt eljárás gyorsítótárban marad. Amikor egy tárolt eljárást eltávolítanak a gyorsítótárból, a megfelelő sor kikerül ebből a nézetből. Ekkor az query_cache_removal_statistics esemény hasonló módon került elő, mint az SQL Server és Azure SQL Managed Instance sys.dm_exec_query_stats-je .

Az Azure SQL Database-ben a dinamikus felügyeleti nézetek nem tehetnek közzé olyan információkat, amelyek hatással lennének az adatbázis-elszigetelésre, vagy nem tehetnek közzé információkat más olyan adatbázisokról, amelyekhez a felhasználó hozzáfér. Az információk felfedésének elkerülése érdekében a rendszer kiszűr minden olyan sort, amely nem a csatlakoztatott bérlőhöz tartozó adatokat tartalmaz.

Megjegyzés:

A sys.dm_exec_procedure_stats eredményei végrehajtásonként változhatnak, mivel az adatok csak a befejezett lekérdezéseket tükrözik, nem pedig azokat, amelyek még a repülés alatt vannak. Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a nevet sys.dm_pdw_nodes_exec_procedure_stats. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Oszlop név Adattípus Description
database_id int Az adatbázis azonosító, amelyben a tárolt eljárás található.

Az Azure SQL Database-ben az értékek egyediek egyetlen adatbázisban vagy rugalmas készletben, de nem logikai kiszolgálón belül.
object_id int A tárolt eljárás objektumazonosító száma.
type char(2) Az objektum típusa:

P = SQL tárolt eljárás

PC = Assembly (CLR) tárolt eljárás

X = Kiterjesztett tárolt eljárás
type_desc nvarchar(60) Az objektumtípus leírása:

SQL_STORED_PROCEDURE

CLR_STORED_PROCEDURE

EXTENDED_STORED_PROCEDURE
sql_handle varbinary(64) Ez használható az sys.dm_exec_query_stats lekérdezések korrelációjára, amelyeket ebben a tárolt eljárásban hajtottak végre.
plan_handle varbinary(64) A memóriabeli terv azonosítója. Ez az azonosító átmeneti, és csak addig marad állandó, amíg a terv a gyorsítótárban marad. Ez az érték a sys.dm_exec_cached_plans dinamikus felügyeleti nézettel használható.

Mindig 0x000 lesz, amikor egy natívan fordított tárolt eljárás memóriára optimalizált táblát kérdez.
cached_time datetime Az időpont, amikor a tárolt eljárást hozzáadták a gyorstárba.
utolsó_végrehajtási_idő datetime Az utolsó alkalom, amikor a tárolt eljárást végrehajtották.
végrehajtások_száma bigint Az utolsó fordítása óta a tárolt eljárás végrehajtása száma.
teljes_dolgozói_idő bigint Az a CPU teljes ideje, mikroszekundumokban, amelyet a tárolt eljárás futtatása elfogyasztott a fordítás óta.

Natívan fordított tárolt eljárások esetén total_worker_time nem biztos, hogy pontos, ha sok végrehajtás kevesebb mint 1 milliszekundumot vesz igénybe.
last_worker_time bigint A CPU ideje, mikroszekundumokban, amelyet az utolsó tárolt eljárás végrehajtása fogyasztott el. 1
min_worker_time bigint Ez a minimális CPU idő, mikroszekundumokban, amelyet ez a tárolt eljárás valaha is elfogyasztott egyetlen végrehajtás során. 1
max_worker_time bigint A maximális CPU idő, mikroszekundumokban, amit ez a tárolt eljárás valaha is elfogyasztott egyetlen végrehajtás során. 1
összes_fizikai_olvasás bigint A tárolt eljárás végrehajtásai által végrehajtott fizikai olvasások teljes száma a fordítás óta.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
utolsó fizikai olvasások bigint A fizikai olvasások száma, amikor utoljára végrehajtották a tárolt eljárást.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
minimális fizikai olvasások bigint Ez a minimális fizikai olvasás száma, amit ez a tárolt eljárás valaha egyetlen végrehajtás során végzett.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
max_physical_reads bigint Ez a maximális fizikai olvasás száma, amit ez a tárolt eljárás valaha egyetlen végrehajtás során végzett.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
total_logikai_írások bigint A logikai írások teljes száma, amelyet a tárolt eljárás lefordítottsága óta végrehajtottak.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
utolsó_logikai_írások bigint A pufferpool oldalak száma legutóbb a terv végrehajtásánál koszos volt. Ha egy oldal már piszkos (módosított), a rendszer nem számol írásokat.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
minimális_logikai_írások bigint Ez a minimális logikai írás száma, amit ez a tárolt eljárás valaha egyetlen végrehajtás alatt végzett.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
max_logical_writes (maximális logikai írások) bigint Ez a maximális logikai írás száma, amit ez a tárolt eljárás valaha végrehajtott egyetlen végrehajtás során.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
teljes_logikai_olvasások bigint A logikai olvasások teljes száma, amelyeket ennek a tárolt eljárásnak a lefordítása óta végrehajtottak.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
last_logical_reads bigint A logikai olvasások száma, amikor utoljára végrehajtották a tárolt eljárást.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
min_logical_reads bigint Ez a minimális logikai olvasmány, amit ez a tárolt eljárás valaha végrehajtott egyetlen végrehajtás során.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
max_logical_reads bigint Ez a logikai olvasás maximális száma, amit ez a tárolt eljárás valaha egyetlen végrehajtás során végzett.

Egy memóriaoptimalizált tábla lekérdezésekor az érték mindig 0 lesz.
total_elapsed_time bigint A tárolt eljárás befejezett végrehajtásához mikroszekundumokban eltelt teljes idő.
utolsó_eltelt_idő bigint A tárolt eljárás legutóbb befejezett végrehajtásához mikroszekundumokban eltelt idő.
minimális_eltelt_idő bigint A minimális eltelt idő, mikroszekundumokban, ennek a tárolt eljárásnak a befejezett végrehajtásához.
max_elapsed_time bigint A tárolt eljárás bármely befejezett végrehajtásához tartozó maximális elt idő, mikroszekundumokban.
total_spills bigint Az összes kiömlött oldal száma, amelyet a tárolt eljárás futtatásával kiömlöttek a fordítás óta.

Vonatkozik: Kezdődve az SQL Server 2017 (14.x) CU3-tól
last_spills bigint Az utolsó tárolási eljárás során kiömlött oldalak száma.

Vonatkozik: Kezdődve az SQL Server 2017 (14.x) CU3-tól
min_spills bigint Ez a minimális oldalszám, amit ez a tárolt eljárás valaha is kicsöpörött egyetlen végrehajtás során.

Vonatkozik: Kezdődve az SQL Server 2017 (14.x) CU3-tól
max_spills bigint Ez a maximális oldalszám, amit ez a tárolt eljárás valaha kicsöpörött egyetlen végrehajtás során.

Vonatkozik: Kezdődve az SQL Server 2017 (14.x) CU3-tól
pdw_node_id int Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található.

A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)
total_page_server_reads bigint Az oldalszerver összes olvasmánya a tárolt eljárás lefordítása óta végrehajtott végrehajtásai során.

A következőkre vonatkozik: Azure SQL Database Rugalmas skálázás
utolsó_oldal_szerver_olvasások bigint Hány oldal szerver olvasott véget az utolsó alkalommal, amikor a tárolt eljárást végrehajtották.

A következőkre vonatkozik: Azure SQL Database Rugalmas skálázás
min_page_server_reads (min. oldal szerver olvasások) bigint A minimális számú oldalszerver olvassa, amit ez a tárolt eljárás valaha végrehajtott egyetlen végrehajtás során.

A következőkre vonatkozik: Azure SQL Database Rugalmas skálázás
max_page_server_reads bigint A maximális számú oldalszerver olvasta el ezt a tárolt eljárást egyetlen végrehajtás során.

A következőkre vonatkozik: Azure SQL Database Rugalmas skálázás

1 Natívan fordított tárolt eljárások esetén, amikor statisztikai gyűjtés engedélyezett, a munkaidő milliszekundumokban gyűjtött. Ha a lekérdezés egy milliszekundum alatt fut le, az érték 0 lesz.

Permissions

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.

Megjegyzések

A nézetben lévő statisztikák frissülnek, amikor egy tárolt eljárás végrehajtása befejeződik.

Példák

A következő példa adja vissza az átlagos eltelt idő alapján azonosított tíz legfontosabb tárolt eljárást.

SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name',   
    d.cached_time, d.last_execution_time, d.total_elapsed_time,  
    d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],  
    d.last_elapsed_time, d.execution_count  
FROM sys.dm_exec_procedure_stats AS d  
ORDER BY [total_worker_time] DESC;  

Lásd még:

végrehajtással kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)