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
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Visszaadja az SQL Serveren végrehajtott minden egyes kérelemre vonatkozó információkat. A kérésekkel kapcsolatos további információkért tekintse meg a Szál és a Feladatarchitektúra útmutatót.
Megjegyzés
Ha ezt az Azure Synapse Analytics vagy Analytics Platform System (PDW) dedikált SQL-készletéből szeretné meghívni, tekintse meg a sys.dm_pdw_exec_requests. Kiszolgáló nélküli SQL-készlet vagy Microsoft Fabric esetén használja a következőt sys.dm_exec_requests: .
| Oszlop név | Adattípus | Leírás |
|---|---|---|
session_id |
smallint | Annak a munkamenetnek az azonosítója, amelyhez a kérés kapcsolódik. Nem null értékű. |
request_id |
int | A kérés azonosítója. A munkamenet kontextusában egyedi. Nem null értékű. |
start_time |
dátum és idő | Időbélyeg, amikor a kérés megérkezett. Nem null értékű. |
status |
nvarchar(30) | A kérés állapota. Az alábbi értékek egyike lehet: háttér visszaállítás futás Futtatható alvó Felfüggesztett Nem null értékű. |
command |
nvarchar(32) | A jelenleg feldolgozott parancstípust azonosítja. A gyakori parancstípusok a következő értékeket tartalmazzák: SELECT BEILLESZT Frissítés töröl BIZTONSÁGI MENTÉSI NAPLÓ BIZTONSÁGI MENTÉSI ADATBÁZIS DBCC RÉSZÉRE A kérés szövege lekérhető sys.dm_exec_sql_text a kérelem megfelelőjével sql_handle . A belső rendszerfolyamatok az általuk végrehajtott feladat típusa alapján állítják be a parancsot. A tevékenységek a következő értékeket tartalmazhatják:ZÁRFIGYELŐ CHECKPOINTLAZY ÍRÓ Nem null értékű. |
sql_handle |
varbinary(64) | Egy jogkivonat, amely egyedileg azonosítja a lekérdezés részét képező köteget vagy tárolt eljárást. Nullázható. |
statement_start_offset |
int | Bájtban, 0-tól kezdődően az aktuálisan végrehajtó utasítás kezdőpozícióját jelzi a jelenleg futó köteghez vagy megőrzött objektumhoz. A kérelem aktuális végrehajtási utasításának lekéréséhez a , a , a sql_handleés a statement_end_offset dinamikus felügyeleti függvénnyel együtt sys.dm_exec_sql_texthasználható. Nullázható. |
statement_end_offset |
int | Bájtban, 0-tól kezdődően az aktuálisan végrehajtó utasítás zárópozícióját jelzi a jelenleg futó köteghez vagy megőrzött objektumhoz. A kérelem aktuális végrehajtási utasításának lekéréséhez a , a , a sql_handleés a statement_start_offset dinamikus felügyeleti függvénnyel együtt sys.dm_exec_sql_texthasználható. Nullázható. |
plan_handle |
varbinary(64) | Egy jogkivonat, amely egyedileg azonosítja a jelenleg futtatott köteg lekérdezés-végrehajtási tervét. Nullázható. |
database_id |
smallint | Annak az adatbázisnak az azonosítója, a amelyen a kérés fut. Nem null értékű. Az Azure SQL Database-ben az értékek egyediek egyetlen adatbázisban vagy rugalmas készletben, de nem logikai kiszolgálón belül. |
user_id |
int | A kérelmet beküldő felhasználó azonosítója. Nem null értékű. |
connection_id |
egyedi azonosító | Annak a kapcsolatnak az azonosítója, amelyre a kérés érkezett. Nullázható. |
blocking_session_id |
smallint | A kérést blokkoló munkamenet azonosítója. Ha ez az oszlop vagy NULL0, a kérés nincs letiltva, vagy a blokkoló munkamenet munkamenet-információi nem érhetők el (vagy nem azonosíthatók). További információ: Az SQL Server blokkolási problémáinak ismertetése és megoldása.-2 = A blokkoló erőforrás egy árva elosztott tranzakció tulajdonában van. -3 = A blokkoló erőforrás egy késleltetett helyreállítási tranzakció tulajdonában van. -4 = session_id a blokkoló retesz tulajdonosa jelenleg nem határozható meg belső reteszállapot-áttűnések miatt.-5
=
session_id a blokkoló retesz tulajdonosa nem határozható meg, mert nincs nyomon követve ehhez a retesztípushoz (például egy SH-reteszhez).Önmagában blocking_session_id-5 nem jelez teljesítményproblémát.
-5 azt jelzi, hogy a munkamenet aszinkron művelet végrehajtására vár. A bevezetés előtt -5 ugyanaz a munkamenet lett volna látható blocking_session_id0, annak ellenére, hogy még várakozási állapotban volt.A számítási feladattól függően a megfigyelés blocking_session_id = -5 gyakori előfordulás lehet. |
wait_type |
nvarchar(60) | Ha a kérés jelenleg le van tiltva, ez az oszlop a várakozás típusát adja vissza. Nullázható. Ha egy kérelem több feladatot használ, például a lekérdezésen belüli párhuzamosság miatt, a tevékenységek különböző, különböző várakozási típusokkal rendelkező erőforrásokon várakozhatnak. A tevékenységek blokkolhatók, míg az ugyanazon kérelem más tevékenységei folytatják a végrehajtást. Ha meg szeretné állapítani az egyes tevékenységek várakozási típusát és időtartamát, valamint hogy le van-e tiltva, használja a sys.dm_os_waiting_tasks. A várakozási típusokkal kapcsolatos információkért lásd: sys.dm_os_wait_stats. |
wait_time |
int | Ha a kérés jelenleg le van tiltva, ez az oszlop az aktuális várakozás időtartamát adja vissza ezredmásodpercben. Nem null értékű. |
last_wait_type |
nvarchar(60) | Ha ez a kérés korábban le lett tiltva, ez az oszlop az utolsó várakozás típusát adja vissza. Nem null értékű. |
wait_resource |
nvarchar(256) | Ha a kérés jelenleg le van tiltva, ez az oszlop azt az erőforrást adja vissza, amelyre a kérés jelenleg várakozik. Nem null értékű. |
open_transaction_count |
int | A kérelemhez megnyitott tranzakciók száma. Nem null értékű. |
open_resultset_count |
int | A kérelemhez megnyitott eredményhalmazok száma. Nem null értékű. |
transaction_id |
bigint | Annak a tranzakciónak az azonosítója, amelyben a kérés végrehajtja. Nem null értékű. |
context_info |
varbinary(128) | CONTEXT_INFO munkamenet értékét. Nullázható. |
percent_complete |
valódi | A következő parancsokhoz elvégzett munka százalékos aránya:ALTER INDEX REORGANIZEAUTO_SHRINK lehetőség a ALTER DATABASEBACKUP DATABASEDBCC CHECKDBDBCC CHECKFILEGROUPDBCC CHECKTABLEDBCC INDEXDEFRAGDBCC SHRINKDATABASEDBCC SHRINKFILERECOVERYRESTORE DATABASEROLLBACKTDE ENCRYPTIONNem null értékű. |
estimated_completion_time |
bigint | Csak belső. Nem null értékű. |
cpu_time |
int | A kérelem által használt processzoridő ezredmásodpercben. Nem null értékű. |
total_elapsed_time |
int | A kérés megérkezése óta eltelt teljes idő ezredmásodpercben eltelt. Nem null értékű. |
scheduler_id |
int | A kérést ütemező ütemező azonosítója. Nullázható. |
task_address |
varbinary(8) | A kérelemhez társított tevékenységhez lefoglalt memóriacím. Nullázható. |
reads |
bigint | A kérés által végrehajtott olvasások száma. Nem null értékű. |
writes |
bigint | A kérés által végrehajtott írások száma. Nem null értékű. |
logical_reads |
bigint | A kérelem által végrehajtott logikai olvasások száma. Nem null értékű. |
text_size |
int | A kérelem SZÖVEGBESZKOSÍTÁS beállítása. Nem null értékű. |
language |
nvarchar(128) | A kérés nyelvi beállítása. Nullázható. |
date_format |
nvarchar(3) | DATEFORMAT-beállítás a kéréshez. Nullázható. |
date_first |
smallint | DATEFIRST-beállítás a kéréshez. Nem null értékű. |
quoted_identifier |
bit | 1 = QUOTED_IDENTIFIER be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
arithabort |
bit | 1 = Az ARITHABORT-beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
ansi_null_dflt_on |
bit | 1 = ANSI_NULL_DFLT_ON beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
ansi_defaults |
bit | 1 = ANSI_DEFAULTS beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
ansi_warnings |
bit | 1 = ANSI_WARNINGS beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
ansi_padding |
bit | 1 = ANSI_PADDING beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
ansi_nulls |
bit | 1 = ANSI_NULLS beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
concat_null_yields_null |
bit | 1 = CONCAT_NULL_YIELDS_NULL beállítás be van kapcsolva a kéréshez. Ellenkező esetben 0. Nem null értékű. |
transaction_isolation_level |
smallint | Elkülönítési szint, amellyel a kérelem tranzakciója létrejön. Nem null értékű. 0 = Meghatározatlan 1 = ReadUncomcomided 2 = ReadCommitted 3 = Megismételhető 4 = Szerializálható 5 = Pillanatkép |
lock_timeout |
int | A kérés időtúllépési időszakának zárolása ezredmásodpercben. Nem null értékű. |
deadlock_priority |
int | DEADLOCK_PRIORITY kérés beállítása. Nem null értékű. |
row_count |
bigint | A kérés által az ügyfélnek visszaadott sorok száma. Nem null értékű. |
prev_error |
int | Utolsó hiba, amely a kérés végrehajtása során történt. Nem null értékű. |
nest_level |
int | A kérelemben végrehajtó kód aktuális beágyazási szintje. Nem null értékű. |
granted_query_memory |
int | A lekérdezés végrehajtásához lefoglalt lapok száma a kérelemben. Nem null értékű. |
executing_managed_code |
bit | Azt jelzi, hogy egy adott kérés jelenleg közös nyelvi futtatókörnyezeti objektumokat hajt-e végre, például rutinokat, típusokat és eseményindítókat. ez a beállítás arra a teljes időre van beállítva, amikor egy közös nyelvi futtatókörnyezeti objektum a veremen van, még akkor is, ha Transact-SQL a közös nyelvi futtatókörnyezetből fut. Nem null értékű. |
group_id |
int | Annak a számítási feladatcsoportnak az azonosítója, amelyhez a lekérdezés tartozik. Nem null értékű. |
query_hash |
bináris(8) | A lekérdezésre kiszámított bináris kivonatérték hasonló logikájú lekérdezések azonosítására szolgál. A lekérdezés kivonatával meghatározhatja a csak literális értékektől eltérő lekérdezések összesített erőforrás-használatát. |
query_plan_hash |
bináris(8) | A lekérdezés végrehajtási tervében kiszámított bináris kivonatérték, amely hasonló lekérdezés-végrehajtási tervek azonosítására szolgál. A lekérdezésterv kivonatával megkeresheti a hasonló végrehajtási tervekkel rendelkező lekérdezések összesített költségét. |
statement_sql_handle |
varbinary(64) |
A következővonatkozik: SQL Server 2014 (12.x) és újabb.sql_handle az egyes lekérdezések közül.Ez az oszlop akkor jelenik NULL meg, ha a Lekérdezéstár nincs engedélyezve az adatbázishoz. |
statement_context_id |
bigint |
A következővonatkozik: SQL Server 2014 (12.x) és újabb. A választható idegen kulcs a következőhöz sys.query_context_settings: .Ez az oszlop akkor jelenik NULL meg, ha a Lekérdezéstár nincs engedélyezve az adatbázishoz. |
dop |
int |
Az: SQL Server 2016 (13.x) és újabb verziókra vonatkozik. A lekérdezés párhuzamossági foka. |
parallel_worker_count |
int |
Az: SQL Server 2016 (13.x) és újabb verziókra vonatkozik. A fenntartott párhuzamos feldolgozók száma, ha ez párhuzamos lekérdezés. |
external_script_request_id |
egyedi azonosító |
Az: SQL Server 2016 (13.x) és újabb verziókra vonatkozik. Az aktuális kéréshez társított külső szkriptkérelem azonosítója. |
is_resumable |
bit |
A következővonatkozik: SQL Server 2017 (14.x) és újabb. Azt jelzi, hogy a kérelem folytatható indexművelet-e. |
page_resource |
bináris(8) |
A következővonatkozik: SQL Server 2019 (15.x) Az oldalerőforrás 8 bájtos hexadecimális ábrázolása, ha az wait_resource oszlop tartalmaz egy oldalt. További információ: sys.fn_PageResCracker. |
page_server_reads |
bigint |
A következőkre vonatkozik: Azure SQL Database Rugalmas skálázás A kérés által végrehajtott oldalkiszolgálói olvasások száma. Nem null értékű. |
dist_statement_id |
egyedi azonosító |
A következőkre vonatkozik: SQL Server 2022 és újabb verziók, Azure SQL Database, Felügyelt Azure SQL-példány, Azure Synapse Analytics (csak kiszolgáló nélküli készletek) és Microsoft Fabric A kérelemhez tartozó utasítás egyedi azonosítója. Nem null értékű. |
Megjegyzések
Az SQL Serveren kívüli kód (például kiterjesztett tárolt eljárások és elosztott lekérdezések) végrehajtásához a szálnak a nem megelőző ütemezőn kívül kell futnia. Ehhez a feldolgozó átáll a megelőző módra. A dinamikus felügyeleti nézet által visszaadott időértékek nem tartalmazzák a megelőző módban töltött időt.
Párhuzamos kérések sor módban történő végrehajtásakor az SQL Server egy feldolgozó szálat rendel hozzá a hozzájuk rendelt feladatok végrehajtásáért felelős munkavégző szálak koordinálásához. Ebben a DMV-ben csak a koordinátori szál látható a kéréshez. Az oszlopok reads, writesés logical_readsrow_countnem frissülnek a koordinátori szálhoz. Az oszlopok wait_type, wait_time, last_wait_type, wait_resourceés granted_query_memory csak a koordinátori szálra frissülnek . További információ: Szál és feladatarchitektúra útmutató.
Az wait_resource oszlop a resource_description hasonló információkat tartalmaz, de másképpen van formázva.
Engedélyek
Ha a felhasználó rendelkezik VIEW SERVER STATE engedéllyel a kiszolgálón, a felhasználó minden végrehajtási munkamenetet lát az SQL Server-példányon; ellenkező esetben a felhasználó csak az aktuális munkamenetet látja.
VIEW SERVER STATE nem adható meg az Azure SQL Database-ben, ezért sys.dm_exec_requests mindig az aktuális kapcsolatra korlátozódik.
A rendelkezésre állási csoport forgatókönyveiben, ha a másodlagos replika csak olvasási szándékra van beállítva, a másodlagoshoz való kapcsolatnak a kapcsolati sztring paramétereiben meg kell adnia az alkalmazás szándékát a kapcsolati applicationintent=readonlysztring paramétereiben. Ellenkező esetben a hozzáférési ellenőrzés sys.dm_exec_requests nem felel meg a rendelkezésre állási csoportban lévő adatbázisoknak, még akkor sem, ha VIEW SERVER STATE van engedély.
Az SQL Server 2022 (16.x) és újabb verzióihoz sys.dm_exec_requests a KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOT-megtekintése engedély szükséges a kiszolgálón.
Példák
Egy. Futó köteg lekérdezési szövegének megkeresése
Az alábbi példa lekérdezésekkel sys.dm_exec_requests megkeresheti az érdekes lekérdezést, és kimásolhatja a sql_handle kimenetből.
SELECT * FROM sys.dm_exec_requests;
GO
Ezután az utasítás szövegének lekéréséhez használja a másolt sql_handle rendszerfüggvényt sys.dm_exec_sql_text(sql_handle).
SELECT * FROM sys.dm_exec_sql_text(< copied sql_handle >);
GO
B. Aktív kérések megjelenítése
Az alábbi példa az SQL Server-adattárházban jelenleg futó lekérdezéseket mutatja be, a saját munkamenet (@@SPID) kivételével. Ezzel lekéri CROSS APPLYsys.dm_exec_sql_text az egyes kérések teljes lekérdezési szövegét, és összekapcsolja a felhasználóval sys.dm_exec_sessions a gazdagépek adatait. A session_id <> @@SPID szűrő biztosítja, hogy ne jelenik meg a saját lekérdezése az eredményekben.
SELECT r.session_id,
r.status,
r.command,
r.start_time,
r.total_elapsed_time / 1000.00 AS elapsed_seconds,
r.cpu_time / 1000.00 AS cpu_seconds,
r.reads,
r.writes,
r.logical_reads,
r.row_count,
s.login_name,
s.host_name,
t.text AS query_text
FROM sys.dm_exec_requests AS r
INNER JOIN sys.dm_exec_sessions AS s
ON r.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t
WHERE r.session_id <> @@SPID
ORDER BY r.start_time DESC;
C. A futó köteg által tartott összes zárolás megkeresése
Az alábbi példa lekérdezi sys.dm_exec_requests az érdekes köteg megkeresését és a kimenetből való másolását transaction_id .
SELECT * FROM sys.dm_exec_requests;
GO
Ezután a zárolási adatok megkereséséhez használja a rendszerfüggvénybe transaction_idmásolt sys.dm_tran_locks adatokat.
SELECT * FROM sys.dm_tran_locks
WHERE request_owner_type = N'TRANSACTION'
AND request_owner_id = < copied transaction_id >;
GO
D. Az összes jelenleg letiltott kérés megkeresése
Az alábbi példa lekérdezi sys.dm_exec_requests a letiltott kérelmekre vonatkozó információkat.
SELECT session_id,
status,
blocking_session_id,
wait_type,
wait_time,
wait_resource,
transaction_id
FROM sys.dm_exec_requests
WHERE status = N'suspended';
GO
E. Meglévő kérések megrendelése PROCESSZOR szerint
SELECT [req].[session_id],
[req].[start_time],
[req].[cpu_time] AS [cpu_time_ms],
OBJECT_NAME([ST].[objectid], [ST].[dbid]) AS [ObjectName],
SUBSTRING(
REPLACE(
REPLACE(
SUBSTRING(
[ST].[text], ([req].[statement_start_offset] / 2) + 1,
((CASE [req].[statement_end_offset]
WHEN -1 THEN DATALENGTH([ST].[text])
ELSE [req].[statement_end_offset]
END - [req].[statement_start_offset]
) / 2
) + 1
), CHAR(10), ' '
), CHAR(13), ' '
), 1, 512
) AS [statement_text]
FROM
[sys].[dm_exec_requests] AS [req]
CROSS APPLY [sys].dm_exec_sql_text([req].[sql_handle]) AS [ST]
ORDER BY
[req].[cpu_time] DESC;
GO
Kapcsolódó tartalom
- rendszer dinamikus felügyeleti nézetei
- végrehajtással kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)
- sys.dm_os_memory_clerks (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)
- sys.dm_exec_query_memory_grants (Transact-SQL)
- sys.dm_exec_query_plan (Transact-SQL)
- sys.dm_exec_sql_text (Transact-SQL)
- SQL Server, SQL Statistics objektum
- lekérdezésfeldolgozási architektúra útmutatója
- Szál- és feladatarchitektúra útmutatója
- Tranzakciózárolási és sorverziózás útmutató
- Az SQL Server blokkolási problémáinak ismertetése és megoldása