Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Valós idejű lekérdezés előrehaladását figyeli, amíg a lekérdezés végrehajtás alatt van. Például ezt a DMV-t használd arra, hogy megállapítsd, a lekérdezés melyik része lassú. Csatlakoztasd ehhez a DMV-hez más rendszer-DMV-kkel a leírásmezőben jelölt oszlopok segítségével. Vagy csatlakoztasd ezt a DMV-t más teljesítményszámlálókkal (például Performance Monitor, xperf) az időbélyeg oszlopok használatával.
Visszaadott tábla
A visszaadott számlálók operátorként, szálonkénti arányban vannak. Az eredmények dinamikusak, és nem egyeznek meg a meglévő opciók eredményeivel, SET STATISTICS XML ON például amelyek csak a lekérdezés befejezése után generálnak kimenetet.
| Oszlop név | Adattípus | Description |
|---|---|---|
| munkamenet_azonosító | smallint | Azonosítja azt az ülést, amelyben ez a lekérdezés fut. Hivatkozások dm_exec_sessions.session_id. |
| kérés_azonosítója | int | Azonosítja a célkérést. Hivatkozások dm_exec_sessions.request_id. |
| sql_handle | varbinary(64) | Ez egy token, amely egyedileg azonosítja azt a batch vagy tárolt eljárást, amelynek a lekérdezés része. Hivatkozások: dm_exec_query_stats.sql_handle. |
| plan_handle | varbinary(64) | Ez egy token, amely egyedien azonosítja egy lekérdezés végrehajtási tervet egy olyan tételre, amely már teljesített, és a terve a terv gyorsítótárában van, vagy éppen teljesít. Hivatkozások dm_exec_query_stats.plan_handle. |
| physical_operator_name | nvarchar(256) | Fizikai operátor neve. |
| node_id | int | Azonosít egy operátor csomópontot a lekérdezési fában. |
| thread_id | int | Megkülönbözteti a szálakat (párhuzamos lekérdezés esetén), amelyek ugyanahhoz a lekérdezési operátor csomóponthoz tartoznak. |
| feladat cím | varbinary(8) | Azonosítja az SQLOS feladatot, amit ez a szál használ. Hivatkozások dm_os_tasks.task_address. |
| row_count | bigint | Az operátor által eddig visszaadott sorok száma. |
| rewind_count | bigint | Eddig hány visszatekerés. |
| rebind_count | bigint | Eddig hány újrakötés. |
| end_of_scan_count | bigint | Eddig hány végi vizsgálat. |
| estimate_row_count | bigint | Becsült sorszám. Hasznos lehet összehasonlítani estimated_row_count a tényleges row_count között. |
| first_active_time | bigint | Az idő, milliszekundumokban, amikor először hívták az operátort. |
| last_active_time | bigint | Az idő, milliszekundumokban, amikor utoljára hívták az operátort. |
| open_time | bigint | Időbélyeg nyitva (milliszekundumokban). |
| first_row_time | bigint | Időbélyeg, amikor az első sor megnyílt (milliszekundumokban). |
| last_row_time | bigint | Időbélyeg, amikor az utolsó sort megnyitották (milliszekundumokban). |
| close_time | bigint | Időbélyeg, amikor közel van (ezredmásodpercekben). |
| elapsed_time_ms | bigint | A célcsomópont eddigi műveletei által használt összes eltelt idő (milliszekundumokban). |
| cpu_time_ms | bigint | A célcsomópont eddigi műveletei által használt teljes CPU idő (milliszekundumokban). |
| database_id | smallint | Az adatbázis azonosítója, amely tartalmazza azt az objektumot, amelyen az olvasás és írás zajlik. |
| object_id | int | Az objektum azonosítója, amelyen az olvasás és írás zajlik. Hivatkozások sys.objects.object_id. |
| index_id | int | Az indexhez (ha van ilyen), amelyhez a sorhalmaz nyitva kerül. |
| scan_count | bigint | Eddig szám táblázat/index vizsgálat. |
| logical_read_count | bigint | Eddig logikus olvasmányok száma. |
| physical_read_count | bigint | Eddig fizikai olvasások száma. |
| read_ahead_count | bigint | Eddig több előreolvasó volt. |
| write_page_count | bigint | Eddig hány oldalírás történt a kiömlés miatt. |
| lob_logical_read_count | bigint | Eddig hány LOB logikai olvasmány. |
| lob_physical_read_count | bigint | Eddig hány LOB fizikai olvasmány. |
| lob_read_ahead_count | bigint | Eddig szám az LOB előreolvasó. |
| segment_read_count | int | Eddig előre előre olvasott szegmensek száma. |
| segment_skip_count | int | Eddig kihagyott szegmensek száma. |
| actual_read_row_count | bigint | A sorok száma, amelyet egy operátor olvasott el, mielőtt a maradék predikátumot alkalmazták. |
| estimated_read_row_count | bigint |
Vonatkozik a következőkre: Az SQL Server 2016 (13.x) SP1-től kezdve. Azok száma, amelyeket az operátor becslések szerint olvasott, mielőtt a maradék predikátumot alkalmazták. |
Általános megjegyzések
Ha a lekérdezési terv csomópontján nincs I/O, az összes I/O-hoz kapcsolódó számláló NULL-ra van állítva.
Az I/O-hoz kapcsolódó számlálók, amelyeket ez a DMV jelentett, részletesebbek, mint az alábbi két módon jelentett SET STATISTICS IO :
SET STATISTICS IOcsoportosítja az összes I/O számlálóit egy adott táblán. Ezzel a DMV-vel külön számlálókat kapsz minden csomóponthoz a lekérdezési tervben, amely az asztalhoz I/O-t végez.Ha párhuzamos szkennelés történik, ez a DMV minden párhuzamos szálra számlálókat jelent, amelyek a vizsgálaton dolgoznak.
Az SQL Server 2016 (13.x) SP1-től kezdve a szabványos lekérdezésvégrehajtási statisztikai profilozási infrastruktúra párhuzamosan létezik egy könnyű lekérdezésvégrehajtási statisztikai profilozó infrastruktúrával.
SET STATISTICS XML ON és SET STATISTICS PROFILE ON mindig a szabványos lekérdezésvégrehajtási statisztikai profilozási infrastruktúrát használjuk. Ahhoz sys.dm_exec_query_profiles , hogy feltöltsük, az egyik lekérdezésprofilozó infrastruktúrát be kell kapcsolni. További információért lásd: lekérdezésprofilozási infrastruktúra.
Megjegyzés:
A vizsgált lekérdezésnek a lekérdezés profilozási infrastruktúrájának bekapcsolása után kell elindulnia, így ha a lekérdezés elindulása után engedélyezzük, nem ad eredményt .sys.dm_exec_query_profiles További információért a lekérdezési profilozási infrastruktúrák engedélyezéséről lásd: Lekérdezési profilozási infrastruktúra.
Permissions
- SQL Server és Azure SQL Managed Instance esetén
VIEW DATABASE STATEengedély és tagság szükséges azdb_owneradatbázis szerepéhez. - Azure SQL Database Premium Tiers-en az adatbázisban szükséges engedély
VIEW DATABASE STATE. - Azure SQL Database Basic, S0 és S1 szolgáltatási céloknál, valamint rugalmas poolok adatbázisainál a szerveradmin vagy Microsoft Entra admin fiók szükséges. Minden más SQL Database szolgáltatás célnál az
VIEW DATABASE STATEengedély az adatbázisban szükséges.
Engedélyek az SQL Server 2022-hez és újabb verziókhoz
A VIEW DATABASE PERFORMANCE STATE engedélyre van szüksége az adatbázisban.
Példák
1. lépés: Jelentkezz be egy olyan ülésre, amelyben azt a lekérdezést tervezed, amellyel elemezni sys.dm_exec_query_profilesfogsz. A profilozás lekérdezésének konfigurálásához használjuk SET STATISTICS PROFILE ON. Futtatd le a lekérdezésedet ugyanebben az ülésben.
--Configure query for profiling with sys.dm_exec_query_profiles
SET STATISTICS PROFILE ON;
GO
--Or enable query profiling globally under SQL Server 2016 SP1 or above (not needed in SQL Server 2019)
DBCC TRACEON (7412, -1);
GO
--Next, run your query in this session, or in any other session if query profiling has been enabled globally
2. lépés: Jelentkezz be egy második ülésre, amely eltér attól, amelyben a lekérdezésed fut.
Az alábbi állítás összefoglalja a jelenleg 54. ülésen futó lekérdezés előrehaladását. Ehhez kiszámítja az összes szál kimeneti sorainak összesített számát minden csomóponthoz, és összehasonlítja azt az adott csomópont becsült kimeneti sorszámával.
--Run this in a different session than the session in which your query is running.
--Note that you may need to change session id 54 below with the session id you want to monitor.
SELECT node_id,physical_operator_name, SUM(row_count) row_count,
SUM(estimate_row_count) AS estimate_row_count,
CAST(SUM(row_count)*100 AS float)/SUM(estimate_row_count)
FROM sys.dm_exec_query_profiles
WHERE session_id=54
GROUP BY node_id,physical_operator_name
ORDER BY node_id;
Lásd még:
dinamikus felügyeleti nézetek és függvények (Transact-SQL)
végrehajtással kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)