Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
Returnerar information om varje begäran som körs i SQL Server. Mer information om begäranden finns i guiden Tråd- och uppgiftsarkitektur.
Anmärkning
Information om hur du anropar detta från en dedikerad SQL-pool i Azure Synapse Analytics eller Analytics Platform System (PDW) finns i sys.dm_pdw_exec_requests. För serverlös SQL-pool eller Microsoft Fabric använder du sys.dm_exec_requests
.
Kolumnnamn | Datatyp | Beskrivning |
---|---|---|
session_id |
smallint | ID för den session som den här begäran är relaterad till. Inte nullbar. |
request_id |
int | ID för begäran. Unikt i kontexten för sessionen. Inte nullbar. |
start_time |
datetime | Tidsstämpel när begäran kom. Inte nullbar. |
status |
nvarchar(30) | Status för begäran. Kan vara något av följande värden: bakgrund tillbakagång körs Körbar sova avstängd Inte nullbar. |
command |
nvarchar(32) | Identifierar den aktuella typen av kommando som bearbetas. Vanliga kommandotyper innehåller följande värden: VÄLJ INFOGA UPPDATERA TA BORT SÄKERHETSKOPIERINGSLOGG SÄKERHETSKOPIERINGSDATABAS DBCC FÖR Texten i begäran kan hämtas med hjälp sys.dm_exec_sql_text av motsvarande sql_handle för begäran. Interna systemprocesser anger kommandot baserat på vilken typ av uppgift de utför. Aktiviteter kan innehålla följande värden:LÅS ÖVERVAKARE CHECKPOINTLAZY FÖRFATTARE Inte nullbar. |
sql_handle |
varbinary(64) | En token som unikt identifierar den batch eller lagrade procedur som frågan ingår i. Nullbar. |
statement_start_offset |
int | Anger, i byte, från och med 0, startpositionen för den körningsinstruktor som körs för den batch som körs för närvarande eller det bevarade objektet. Kan användas tillsammans med sql_handle funktionen , statement_end_offset och dynamisk sys.dm_exec_sql_text hantering för att hämta instruktionen som körs för begäran. Nullbar. |
statement_end_offset |
int | Anger, i byte, från och med 0, slutpositionen för den körningsinstruktor som körs för den aktuella batchen eller det bevarade objektet. Kan användas tillsammans med sql_handle funktionen , statement_start_offset och dynamisk sys.dm_exec_sql_text hantering för att hämta instruktionen som körs för begäran. Nullbar. |
plan_handle |
varbinary(64) | En token som unikt identifierar en frågekörningsplan för en batch som körs för närvarande. Nullbar. |
database_id |
smallint | ID för databasen som begäran körs mot. Inte nullbar. I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. |
user_id |
int | ID för den användare som skickade begäran. Inte nullbar. |
connection_id |
unika identifierare | ID för anslutningen som begäran kom till. Nullbar. |
blocking_session_id |
smallint | ID för sessionen som blockerar begäran. Om den här kolumnen är NULL eller 0 blockeras inte begäran eller sessionsinformationen för den blockerande sessionen inte är tillgänglig (eller kan inte identifieras). Mer information finns i Förstå och lösa problem med SQL Server-blockering.-2 = Den blockerande resursen ägs av en överbliven distribuerad transaktion. -3 = Den blockerande resursen ägs av en uppskjuten återställningstransaktion. -4 = session_id av den blockerande låsägaren kunde inte fastställas just nu på grund av interna spärrtillståndsövergångar.-5
=
session_id av den blockerande låsägaren kunde inte fastställas eftersom den inte spåras för den här spärrtypen (till exempel för en SH-spärr).I sig blocking_session_id -5 anger inte ett prestandaproblem.
-5 är en indikation på att sessionen väntar på att en asynkron åtgärd ska slutföras. Innan -5 introducerades skulle samma session ha visat blocking_session_id 0 , även om den fortfarande var i väntetillstånd.Beroende på arbetsbelastning kan det vara vanligt att observera blocking_session_id = -5 . |
wait_type |
nvarchar(60) | Om begäran för närvarande är blockerad returnerar den här kolumnen typen av väntan. Nullbar. Information om typer av väntetider finns i sys.dm_os_wait_stats. |
wait_time |
int | Om begäran för närvarande är blockerad returnerar den här kolumnen varaktigheten i millisekunder, för den aktuella väntetiden. Inte nullbar. |
last_wait_type |
nvarchar(60) | Om den här begäran tidigare har blockerats returnerar den här kolumnen typen av sista väntan. Inte nullbar. |
wait_resource |
nvarchar(256) | Om begäran för närvarande är blockerad returnerar den här kolumnen den resurs som begäran väntar på. Inte nullbar. |
open_transaction_count |
int | Antal transaktioner som är öppna för den här begäran. Inte nullbar. |
open_resultset_count |
int | Antal resultatuppsättningar som är öppna för den här begäran. Inte nullbar. |
transaction_id |
bigint | ID för transaktionen där den här begäran körs. Inte nullbar. |
context_info |
varbinary(128) | CONTEXT_INFO värdet för sessionen. Nullbar. |
percent_complete |
riktiga | Procentandel av arbetet som har slutförts för följande kommandon:ALTER INDEX REORGANIZE AUTO_SHRINK alternativet med ALTER DATABASE BACKUP DATABASE DBCC CHECKDB DBCC CHECKFILEGROUP DBCC CHECKTABLE DBCC INDEXDEFRAG DBCC SHRINKDATABASE DBCC SHRINKFILE RECOVERY RESTORE DATABASE ROLLBACK TDE ENCRYPTION Inte nullbar. |
estimated_completion_time |
bigint | Endast internt. Inte nullbar. |
cpu_time |
int | CPU-tid i millisekunder som används av begäran. Inte nullbar. |
total_elapsed_time |
int | Total tid som förflutit i millisekunder sedan begäran kom. Inte nullbar. |
scheduler_id |
int | ID för schemaläggaren som schemalägger den här begäran. Nullbar. |
task_address |
varbinary(8) | Minnesadress som allokerats till den uppgift som är associerad med den här begäran. Nullbar. |
reads |
bigint | Antal läsningar som utförs av den här begäran. Inte nullbar. |
writes |
bigint | Antal skrivningar som utförs av den här begäran. Inte nullbar. |
logical_reads |
bigint | Antal logiska läsningar som har utförts av begäran. Inte nullbar. |
text_size |
int | TEXTSTORLEKsinställning för den här begäran. Inte nullbar. |
language |
nvarchar(128) | Språkinställning för begäran. Nullbar. |
date_format |
nvarchar(3) | DATEFORMAT-inställning för begäran. Nullbar. |
date_first |
smallint | DATEFIRST-inställning för begäran. Inte nullbar. |
quoted_identifier |
bit | 1 = QUOTED_IDENTIFIER är PÅ för begäran. Annars är det 0. Inte nullbar. |
arithabort |
bit | 1 = ARITHABORT-inställningen är PÅ för begäran. Annars är det 0. Inte nullbar. |
ansi_null_dflt_on |
bit | 1 = ANSI_NULL_DFLT_ON inställningen är PÅ för begäran. Annars är det 0. Inte nullbar. |
ansi_defaults |
bit | 1 = inställningen ANSI_DEFAULTS är PÅ för begäran. Annars är det 0. Inte nullbar. |
ansi_warnings |
bit | 1 = inställningen ANSI_WARNINGS är PÅ för begäran. Annars är det 0. Inte nullbar. |
ansi_padding |
bit | 1 = inställningen ANSI_PADDING är PÅ för begäran. Annars är det 0. Inte nullbar. |
ansi_nulls |
bit | 1 = ANSI_NULLS inställningen är PÅ för begäran. Annars är det 0. Inte nullbar. |
concat_null_yields_null |
bit | 1 = CONCAT_NULL_YIELDS_NULL inställningen är PÅ för begäran. Annars är det 0. Inte nullbar. |
transaction_isolation_level |
smallint | Isoleringsnivå som transaktionen för den här begäran skapas med. Inte nullbar. 0 = Ospecificerad 1 = ReadUncommitted 2 = ReadCommitted 3 = Repeterbar 4 = Serializable 5 = Ögonblicksbild |
lock_timeout |
int | Lås tidsgränsen i millisekunder för den här begäran. Inte nullbar. |
deadlock_priority |
int | DEADLOCK_PRIORITY inställning för begäran. Inte nullbar. |
row_count |
bigint | Antal rader som har returnerats till klienten av den här begäran. Inte nullbar. |
prev_error |
int | Det senaste felet som inträffade under körningen av begäran. Inte nullbar. |
nest_level |
int | Aktuell kapslingsnivå för kod som körs på begäran. Inte nullbar. |
granted_query_memory |
int | Antal sidor som allokerats till körningen av en fråga i begäran. Inte nullbar. |
executing_managed_code |
bit | Anger om en specifik begäran för närvarande kör vanliga språkkörningsobjekt, till exempel rutiner, typer och utlösare. det är inställt på heltid som ett vanligt språkkörningsobjekt finns på stacken, även när Transact-SQL körs inifrån common language runtime. Inte nullbar. |
group_id |
int | ID för den arbetsbelastningsgrupp som frågan tillhör. Inte nullbar. |
query_hash |
binär(8) | Binär hash-värde som beräknas på frågan och används för att identifiera frågor med liknande logik. Du kan använda frågehashen för att fastställa den aggregerade resursanvändningen för frågor som endast skiljer sig åt med literalvärden. |
query_plan_hash |
binär(8) | Binär hash-värde som beräknas på frågekörningsplanen och används för att identifiera liknande frågekörningsplaner. Du kan använda hash för frågeplan för att hitta den kumulativa kostnaden för frågor med liknande körningsplaner. |
statement_sql_handle |
varbinary(64) |
gäller för: SQL Server 2014 (12.x) och senare.sql_handle av den enskilda frågan.Den här kolumnen är NULL om Query Store inte är aktiverat för databasen. |
statement_context_id |
bigint |
gäller för: SQL Server 2014 (12.x) och senare. Den valfria sekundärnyckeln till sys.query_context_settings .Den här kolumnen är NULL om Query Store inte är aktiverat för databasen. |
dop |
int |
gäller för: SQL Server 2016 (13.x) och senare. Graden av parallellitet i frågan. |
parallel_worker_count |
int |
gäller för: SQL Server 2016 (13.x) och senare. Antalet reserverade parallella arbetare om det här är en parallell fråga. |
external_script_request_id |
unika identifierare |
gäller för: SQL Server 2016 (13.x) och senare. Det externa skriptbegärande-ID som är associerat med den aktuella begäran. |
is_resumable |
bit |
gäller för: SQL Server 2017 (14.x) och senare. Anger om begäran är en indexåtgärd som kan återupptas. |
page_resource |
binär(8) |
gäller för: SQL Server 2019 (15.x) En hexadecimal representation på 8 byte av sidresursen wait_resource om kolumnen innehåller en sida. Mer information finns i sys.fn_PageResCracker. |
page_server_reads |
bigint |
Gäller för: Azure SQL Database Hyperscale Antal sidserverläsningar som utförs av den här begäran. Inte nullbar. |
dist_statement_id |
unika identifierare |
Gäller för: SQL Server 2022 och senare versioner, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (endast serverlösa pooler) och Microsoft Fabric Unikt ID för -instruktionen för den skickade begäran. Inte nullbar. |
Anmärkningar
För att köra kod utanför SQL Server (till exempel utökade lagrade procedurer och distribuerade frågor) måste en tråd köras utanför den icke-förebyggande schemaläggarens kontroll. För att göra detta växlar en arbetare till förebyggande läge. Tidsvärden som returneras av den här dynamiska hanteringsvyn inkluderar inte tid i förebyggande läge.
När parallella begäranden körs i radläge tilldelar SQL Server en arbetstråd för att samordna de arbetstrådar som ansvarar för att utföra uppgifter som tilldelats dem. I den här DMV:en visas endast koordinatortråden för begäran. Kolumnerna reads
, writes
, logical_reads
och row_count
uppdateras inte för koordinatortråden. Kolumnerna wait_type
, wait_time
, last_wait_type
, wait_resource
och granted_query_memory
uppdateras endast för koordinatortråden. Mer information finns i tråd- och aktivitetsarkitekturguiden.
Kolumnen wait_resource
innehåller liknande information som resource_description
i sys.dm_tran_locks men formateras på olika sätt.
Behörigheter
Om användaren har VIEW SERVER STATE
behörighet på servern ser användaren alla körningssessioner på SQL Server-instansen. Annars ser användaren bara den aktuella sessionen.
VIEW SERVER STATE
kan inte beviljas i Azure SQL Database så sys.dm_exec_requests
är alltid begränsad till den aktuella anslutningen.
Om den sekundära repliken är inställd på skrivskyddad i scenarier med tillgänglighetsgrupp måste anslutningen till den sekundära filen ange sin program avsikt i anslutningssträngsparametrarna genom att lägga till applicationintent=readonly
. Annars godkänns inte åtkomstkontrollen för sys.dm_exec_requests
databaser i tillgänglighetsgruppen, även om VIEW SERVER STATE
behörighet finns.
För SQL Server 2022 (16.x) och senare versioner sys.dm_exec_requests
krävs behörighet för VIEW SERVER PERFORMANCE STATE på servern.
Exempel
A. Hitta frågetexten för en batch som körs
I följande exempel frågar sys.dm_exec_requests
du efter den intressanta frågan och kopierar den sql_handle
från utdata.
SELECT * FROM sys.dm_exec_requests;
GO
Använd sedan den kopierade sql_handle
med systemfunktionen för att hämta instruktionstexten sys.dm_exec_sql_text(sql_handle)
.
SELECT * FROM sys.dm_exec_sql_text(< copied sql_handle >);
GO
B. Visa aktiva begäranden
I följande exempel visas alla frågor som körs i ditt SQL Server-informationslager, exklusive din egen session (@@SPID
). Den använder CROSS APPLY
med sys.dm_exec_sql_text
för att hämta den fullständiga frågetexten för varje begäran och ansluter sys.dm_exec_sessions
till för att inkludera användarens värdinformation. Filtret session_id <> @@SPID
ser till att du inte ser din egen fråga i resultatet.
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. Hitta alla lås som en batch som körs håller
I följande exempel frågar sys.dm_exec_requests
du efter den intressanta batchen och kopierar den transaction_id
från utdata.
SELECT * FROM sys.dm_exec_requests;
GO
Använd sedan den kopierade transaction_id
med systemfunktionen sys.dm_tran_locks
för att hitta låsinformation.
SELECT * FROM sys.dm_tran_locks
WHERE request_owner_type = N'TRANSACTION'
AND request_owner_id = < copied transaction_id >;
GO
D. Hitta alla för närvarande blockerade begäranden
Följande exempel frågar sys.dm_exec_requests
efter information om blockerade begäranden.
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. Beställa befintliga begäranden efter CPU
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
Relaterat innehåll
- Vyer för dynamisk hantering av system
- körningsrelaterade vyer och funktioner för dynamisk hantering (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-objekt
- arkitekturguide för frågebearbetning
- Guide för tråd- och uppgiftsarkitektur
- Guide för transaktionslåsning och radversionering
- Förstå och lösa problem med SQL Server-blockering