sys.dm_exec_requests (Transact-SQL)sys.dm_exec_requests (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Retorna informações sobre cada solicitação que está sendo executada em SQL ServerSQL Server.Returns information about each request that is executing in SQL ServerSQL Server. Para obter mais informações sobre solicitações, consulte o Guia de arquitetura de threads e tarefas.For more information about requests, see the Thread and Task Architecture Guide.

Nome da colunaColumn name Tipo de dadosData type DescriçãoDescription
session_idsession_id smallintsmallint ID da sessão a que esta solicitação está relacionada.ID of the session to which this request is related. Não permite valor nulo.Is not nullable.
request_idrequest_id intint ID da solicitação.ID of the request. Exclusiva no contexto da sessão.Unique in the context of the session. Não permite valor nulo.Is not nullable.
start_timestart_time datetimedatetime Carimbo de data e hora em que a solicitação chegou.Timestamp when the request arrived. Não permite valor nulo.Is not nullable.
statusstatus nvarchar(30)nvarchar(30) Status da solicitação.Status of the request. Pode ser um dos seguintes:This can be one of the following:

Plano de fundoBackground
ExecutandoRunning
ExecutávelRunnable
HibernandoSleeping
SuspensoSuspended

Não permite valor nulo.Is not nullable.
commandcommand nvarchar(32)nvarchar(32) Identifica o tipo atual de comando que está sendo processado.Identifies the current type of command that is being processed. Os tipos de comando comuns incluem:Common command types include the following:

SELECTSELECT
Insert (inserir)INSERT
UPDATEUPDATE
DELETEDELETE
BACKUP LOGBACKUP LOG
BACKUP DATABASEBACKUP DATABASE
DBCCDBCC
FORFOR

O texto da solicitação pode ser recuperado usando sys.dm_exec_sql_text com o sql_handle correspondente para a solicitação.The text of the request can be retrieved by using sys.dm_exec_sql_text with the corresponding sql_handle for the request. Os processos de sistema internos definem o comando com base no tipo de tarefa que eles executam.Internal system processes set the command based on the type of task they perform. As tarefas podem incluir o seguinte:Tasks can include the following:

LOCK MONITORLOCK MONITOR
CHECKPOINTLAZYCHECKPOINTLAZY
WRITERWRITER

Não permite valor nulo.Is not nullable.
sql_handlesql_handle varbinary(64)varbinary(64) É um token que identifica exclusivamente o lote ou o procedimento armazenado do qual a consulta faz parte.Is a token that uniquely identifies the batch or stored procedure that the query is part of. Permite valor nulo.Is nullable.
statement_start_offsetstatement_start_offset intint Número de caracteres no procedimento em lote ou armazenado atualmente em execução no qual a instrução atualmente em execução se inicia.Number of characters into the currently executing batch or stored procedure at which the currently executing statement starts. Pode ser usado junto com a função de gerenciamento dinâmico sql_handle, statement_end_offset e sys.dm_exec_sql_text para recuperar a instrução atualmente em execução da solicitação.Can be used together with the sql_handle, the statement_end_offset, and the sys.dm_exec_sql_text dynamic management function to retrieve the currently executing statement for the request. Permite valor nulo.Is nullable.
statement_end_offsetstatement_end_offset intint Número de caracteres no procedimento em lote ou armazenado atualmente em execução no qual a instrução atualmente em execução termina.Number of characters into the currently executing batch or stored procedure at which the currently executing statement ends. Pode ser usado junto com a função de gerenciamento dinâmico sql_handle, statement_end_offset e sys.dm_exec_sql_text para recuperar a instrução atualmente em execução da solicitação.Can be used together with the sql_handle, the statement_end_offset, and the sys.dm_exec_sql_text dynamic management function to retrieve the currently executing statement for the request. Permite valor nulo.Is nullable.
plan_handleplan_handle varbinary(64)varbinary(64) É um token que identifica exclusivamente um plano de execução de consulta para um lote em execução no momento.Is a token that uniquely identifies a query execution plan for a batch that is currently executing. Permite valor nulo.Is nullable.
database_iddatabase_id smallintsmallint ID do banco de dados no qual a solicitação está em execução.ID of the database the request is executing against. Não permite valor nulo.Is not nullable.
user_iduser_id intint ID do usuário que enviou a solicitação.ID of the user who submitted the request. Não permite valor nulo.Is not nullable.
connection_idconnection_id uniqueidentifieruniqueidentifier ID da conexão em que a solicitação chegou.ID of the connection on which the request arrived. Permite valor nulo.Is nullable.
blocking_session_idblocking_session_id smallintsmallint ID da sessão que está bloqueando a solicitação.ID of the session that is blocking the request. Se esta coluna for nula ou igual a 0, a solicitação não será bloqueada ou as informações da sessão da sessão de bloqueio não estarão disponíveis (ou não poderão ser identificadas).If this column is NULL or equal to 0, the request is not blocked, or the session information of the blocking session is not available (or cannot be identified).

-2 = O recurso de bloqueio pertence a uma transação distribuída órfã.-2 = The blocking resource is owned by an orphaned distributed transaction.

-3 = O recurso de bloqueio pertence a uma transação de recuperação adiada.-3 = The blocking resource is owned by a deferred recovery transaction.

-4 = A ID da sessão do proprietário da trava de bloqueio não pôde ser determinada neste momento devido a transições internas de estado da trava.-4 = Session ID of the blocking latch owner could not be determined at this time because of internal latch state transitions.
wait_typewait_type nvarchar(60)nvarchar(60) Se a solicitação estiver bloqueada, esta coluna retornará o tipo de espera.If the request is currently blocked, this column returns the type of wait. Permite valor nulo.Is nullable.

Para obter informações sobre os tipos de esperas, consulte Sys (. DM_OS_WAIT_STATS Transact)-SQL.For information about types of waits, see sys.dm_os_wait_stats (Transact-SQL).
wait_timewait_time intint Se a solicitação estiver bloqueada, esta coluna retornará a duração, em milissegundos, da espera atual.If the request is currently blocked, this column returns the duration in milliseconds, of the current wait. Não permite valor nulo.Is not nullable.
last_wait_typelast_wait_type nvarchar(60)nvarchar(60) Se esta solicitação tiver sido previamente bloqueada, esta coluna retornará o tipo da última espera.If this request has previously been blocked, this column returns the type of the last wait. Não permite valor nulo.Is not nullable.
wait_resourcewait_resource nvarchar(256)nvarchar(256) Se a solicitação estiver bloqueada, esta coluna retornará o recurso pelo qual a solicitação está esperando atualmente.If the request is currently blocked, this column returns the resource for which the request is currently waiting. Não permite valor nulo.Is not nullable.
open_transaction_countopen_transaction_count intint Número de transações abertas para esta solicitação.Number of transactions that are open for this request. Não permite valor nulo.Is not nullable.
open_resultset_countopen_resultset_count intint Número de conjuntos de resultados abertos para esta solicitação.Number of result sets that are open for this request. Não permite valor nulo.Is not nullable.
transaction_idtransaction_id bigintbigint ID da transação na qual esta solicitação é executada.ID of the transaction in which this request executes. Não permite valor nulo.Is not nullable.
context_infocontext_info varbinary(128)varbinary(128) CONTEXT_INFO valor da sessão.CONTEXT_INFO value of the session. Permite valor nulo.Is nullable.
percent_completepercent_complete realreal Porcentagem de trabalho concluída para os comandos a seguir:Percentage of work completed for the following commands:

ALTER INDEX REORGANIZEALTER INDEX REORGANIZE
Opção AUTO_SHRINK com ALTER DATABASEAUTO_SHRINK option with ALTER DATABASE
BACKUP DATABASEBACKUP DATABASE
DBCC CHECKDBDBCC CHECKDB
DBCC CHECKFILEGROUPDBCC CHECKFILEGROUP
DBCC CHECKTABLEDBCC CHECKTABLE
DBCC INDEXDEFRAGDBCC INDEXDEFRAG
DBCC SHRINKDATABASEDBCC SHRINKDATABASE
DBCC SHRINKFILEDBCC SHRINKFILE
RECOVERYRECOVERY
RESTORE DATABASERESTORE DATABASE
ROLLBACKROLLBACK
TDE ENCRYPTIONTDE ENCRYPTION

Não permite valor nulo.Is not nullable.
estimated_completion_timeestimated_completion_time bigintbigint Somente interno.Internal only. Não permite valor nulo.Is not nullable.
cpu_timecpu_time intint Tempo da CPU, em milissegundos, usado pela solicitação.CPU time in milliseconds that is used by the request. Não permite valor nulo.Is not nullable.
total_elapsed_timetotal_elapsed_time intint Tempo total decorrido em milissegundos desde que a solicitação chegou.Total time elapsed in milliseconds since the request arrived. Não permite valor nulo.Is not nullable.
scheduler_idscheduler_id intint ID do agendador que está programando esta solicitação.ID of the scheduler that is scheduling this request. Não permite valor nulo.Is not nullable.
task_addresstask_address varbinary(8)varbinary(8) Endereço de memória alocado à tarefa associada a esta solicitação.Memory address allocated to the task that is associated with this request. Permite valor nulo.Is nullable.
readsreads bigintbigint Número de leituras executadas por esta solicitação.Number of reads performed by this request. Não permite valor nulo.Is not nullable.
writeswrites bigintbigint Número de gravações executadas por esta solicitação.Number of writes performed by this request. Não permite valor nulo.Is not nullable.
logical_readslogical_reads bigintbigint Número de leituras lógicas executadas pela solicitação.Number of logical reads that have been performed by the request. Não permite valor nulo.Is not nullable.
text_sizetext_size intint Configuração TEXTSIZE para esta solicitação.TEXTSIZE setting for this request. Não permite valor nulo.Is not nullable.
languagelanguage nvarchar(128)nvarchar(128) Configuração de idioma para a solicitação.Language setting for the request. Permite valor nulo.Is nullable.
date_formatdate_format nvarchar(3)nvarchar(3) Configuração DATEFORMAT para a solicitação.DATEFORMAT setting for the request. Permite valor nulo.Is nullable.
date_firstdate_first smallintsmallint Configuração DATEFIRST para a solicitação.DATEFIRST setting for the request. Não permite valor nulo.Is not nullable.
quoted_identifierquoted_identifier bitbit 1 = QUOTED_IDENTIFIER é ON para a solicitação.1 = QUOTED_IDENTIFIER is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
arithabortarithabort bitbit 1 = configuração ARITHABORT é ON para a solicitação.1 = ARITHABORT setting is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit 1 = configuração ANSI_NULL_DFLT_ON é ON para a solicitação.1 = ANSI_NULL_DFLT_ON setting is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
ansi_defaultsansi_defaults bitbit 1 = configuração ANSI_DEFAULTS é ON para a solicitação.1 = ANSI_DEFAULTS setting is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
ansi_warningsansi_warnings bitbit 1 = configuração ANSI_WARNINGS é ON para a solicitação.1 = ANSI_WARNINGS setting is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
ansi_paddingansi_padding bitbit 1 = configuração ANSI_PADDING é ON para a solicitação.1 = ANSI_PADDING setting is ON for the request.

Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
ansi_nullsansi_nulls bitbit 1 = configuração ANSI_NULLS é ON para a solicitação.1 = ANSI_NULLS setting is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit 1 = configuração CONCAT_NULL_YIELDS_NULL é ON para a solicitação.1 = CONCAT_NULL_YIELDS_NULL setting is ON for the request. Caso contrário, é 0.Otherwise, it is 0.

Não permite valor nulo.Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint Nível de isolamento com que a transação desta solicitação é criada.Isolation level with which the transaction for this request is created. Não permite valor nulo.Is not nullable.
0 = Não Especificado0 = Unspecified
1 = Leitura Não Confirmada1 = ReadUncomitted
2 = Leitura Confirmada2 = ReadCommitted
3 = Repetível3 = Repeatable
4 = Serializável4 = Serializable
5 = Instantâneo5 = Snapshot
lock_timeoutlock_timeout intint Tempo limite de bloqueio em milissegundos desta solicitação.Lock time-out period in milliseconds for this request. Não permite valor nulo.Is not nullable.
deadlock_prioritydeadlock_priority intint Configuração DEADLOCK_PRIORITY da solicitação.DEADLOCK_PRIORITY setting for the request. Não permite valor nulo.Is not nullable.
row_countrow_count bigintbigint Número de linhas que foram retornadas ao cliente por esta solicitação.Number of rows that have been returned to the client by this request. Não permite valor nulo.Is not nullable.
prev_errorprev_error intint Último erro ocorrido durante a execução da solicitação.Last error that occurred during the execution of the request. Não permite valor nulo.Is not nullable.
nest_levelnest_level intint Nível de aninhamento atual do código sendo executado na solicitação.Current nesting level of code that is executing on the request. Não permite valor nulo.Is not nullable.
granted_query_memorygranted_query_memory intint Número de páginas alocadas à execução de uma consulta na solicitação.Number of pages allocated to the execution of a query on the request. Não permite valor nulo.Is not nullable.
executing_managed_codeexecuting_managed_code bitbit Indica se uma solicitação específica está atualmente executando objetos de Common Language runtime, como rotinas, tipos e gatilhos.Indicates whether a specific request is currently executing common language runtime objects, such as routines, types, and triggers. É definida para todo o tempo em que um objeto de Common Language runtime estiver na pilha, mesmo durante a execução de Transact-SQLTransact-SQL no Common Language runtime.It is set for the full time a common language runtime object is on the stack, even while running Transact-SQLTransact-SQL from within common language runtime. Não permite valor nulo.Is not nullable.
group_idgroup_id intint ID do grupo de carga de trabalho a que pertence esta consulta.ID of the workload group to which this query belongs. Não permite valor nulo.Is not nullable.
query_hashquery_hash binary(8)binary(8) Valor de hash binário calculado na consulta e usado para identificar consultas com lógica semelhante.Binary hash value calculated on the query and used to identify queries with similar logic. Você pode usar o hash de consulta para determinar o recurso de agregação usado para consultas que são diferentes apenas nos valores literais.You can use the query hash to determine the aggregate resource usage for queries that differ only by literal values.
query_plan_hashquery_plan_hash binary(8)binary(8) Valor de hash binário calculado no plano de execução de consulta e usado para identificar planos de execução de consulta semelhantes.Binary hash value calculated on the query execution plan and used to identify similar query execution plans. Você pode usar o hash de plano de consulta para localizar o custo cumulativo de consultas com planos de execução semelhantes.You can use query plan hash to find the cumulative cost of queries with similar execution plans.
statement_sql_handlestatement_sql_handle varbinary(64)varbinary(64) Aplica-se a: SQL Server 2014 (12.x)SQL Server 2014 (12.x) e posterior.Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later.

Identificador SQL da consulta individual.SQL handle of the individual query.

Esta coluna será nula se Repositório de Consultas não estiver habilitada para o banco de dados.This column is NULL if Query Store is not enabled for the database.
statement_context_idstatement_context_id bigintbigint Aplica-se a: SQL Server 2014 (12.x)SQL Server 2014 (12.x) e posterior.Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later.

A chave estrangeira opcional para sys. query_context_settings.The optional foreign key to sys.query_context_settings.

Esta coluna será nula se Repositório de Consultas não estiver habilitada para o banco de dados.This column is NULL if Query Store is not enabled for the database.
dopdop intint Aplica-se a: SQL Server 2016 (13.x)SQL Server 2016 (13.x) e posterior.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later.

O grau de paralelismo da consulta.The degree of parallelism of the query.
parallel_worker_countparallel_worker_count intint Aplica-se a: SQL Server 2016 (13.x)SQL Server 2016 (13.x) e posterior.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later.

O número de operadores paralelos reservados se esta for uma consulta paralela.The number of reserved parallel workers if this is a parallel query.
external_script_request_idexternal_script_request_id uniqueidentifieruniqueidentifier Aplica-se a: SQL Server 2016 (13.x)SQL Server 2016 (13.x) e posterior.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later.

A ID de solicitação de script externo associada à solicitação atual.The external script request ID associated with the current request.
is_resumableis_resumable bitbit Aplica-se a: SQL Server 2017 (14.x)SQL Server 2017 (14.x) e posterior.Applies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x) and later.

Indica se a solicitação é uma operação de índice retomável.Indicates whether the request is a resumable index operation.
page_resourcepage_resource binary(8)binary(8) Aplica-se ao: SQL Server 2019 (15.x)SQL Server 2019 (15.x)Applies to: SQL Server 2019 (15.x)SQL Server 2019 (15.x)

Uma representação hexadecimal de 8 bytes do recurso de página se a coluna de wait_resource contiver uma página.An 8-byte hexadecimal representation of the page resource if the wait_resource column contains a page. Para obter mais informações, consulte Sys. fn_PageResCracker.For more information, see sys.fn_PageResCracker.
page_server_readspage_server_reads bigintbigint Aplica-se a: hiperescala do banco de dados SQL do AzureApplies to: Azure SQL Database Hyperscale

Número de leituras de servidor de página executadas por essa solicitação.Number of page server reads performed by this request. Não permite valor nulo.Is not nullable.
     

RemarksRemarks

Para executar código fora do SQL ServerSQL Server (por exemplo, procedimentos armazenados estendidos e consultas distribuídas), um thread deve ser executado fora do controle de um agendador não preventivo.To execute code that is outside SQL ServerSQL Server (for example, extended stored procedures and distributed queries), a thread has to execute outside the control of the non-preemptive scheduler. Para fazer isso, um trabalhador muda para o modo preventivo.To do this, a worker switches to preemptive mode. Os valores de tempo retornados por essa exibição de gerenciamento dinâmico não incluem o tempo gasto no modo preventivo.Time values returned by this dynamic management view do not include time spent in preemptive mode.

Ao executar solicitações paralelas no modo de linha, SQL ServerSQL Server atribui um thread de trabalho para coordenar os threads de trabalho responsáveis por concluir tarefas atribuídas a eles.When executing parallel requests in row mode, SQL ServerSQL Server assigns a worker thread to coordinate the worker threads responsible for completing tasks assigned to them. Nesse DMV, apenas o thread do coordenador fica visível para a solicitação.In this DMV only the coordinator thread is visible for the request. As colunas leituras, gravações logical_readse row_count não são atualizadas para o thread do coordenador.The columns reads, writes, logical_reads, and row_count are not updated for the coordinator thread. As colunas wait_type, wait_time, last_wait_type, wait_resourcee granted_query_memory são atualizadas somente para o thread do coordenador.The columns wait_type, wait_time, last_wait_type, wait_resource, and granted_query_memory are only updated for the coordinator thread. Para saber mais, confira o Guia de arquitetura de threads e tarefas.For more information, see the Thread and Task Architecture Guide.

PermissõesPermissions

Se o usuário tiver a permissão VIEW SERVER STATE no servidor, o usuário verá todas as sessões em execução na instância do SQL ServerSQL Server; caso contrário, o usuário verá apenas a sessão atual.If the user has VIEW SERVER STATE permission on the server, the user will see all executing sessions on the instance of SQL ServerSQL Server; otherwise, the user will see only the current session. VIEW SERVER STATE não pode ser concedido em Banco de Dados SQLSQL Database para que sys.dm_exec_requests esteja sempre limitado à conexão atual.VIEW SERVER STATE cannot be granted in Banco de Dados SQLSQL Database so sys.dm_exec_requests is always limited to the current connection.

ExemplosExamples

A.A. Localizando o texto da consulta para um lote em execuçãoFinding the query text for a running batch

O exemplo a seguir consulta sys.dm_exec_requests para localizar a consulta interessante e copiar o sql_handle da saída.The following example queries sys.dm_exec_requests to find the interesting query and copy its sql_handle from the output.

SELECT * FROM sys.dm_exec_requests;  
GO  

Em seguida, para obter o texto da instrução, use o sql_handle copiado com a função do sistema sys.dm_exec_sql_text(sql_handle).Then, to obtain the statement text, use the copied sql_handle with system function sys.dm_exec_sql_text(sql_handle).

SELECT * FROM sys.dm_exec_sql_text(< copied sql_handle >);  
GO  

B.B. Localizando todos os bloqueios que estão sendo mantidos por um lote em execuçãoFinding all locks that a running batch is holding

O exemplo a seguir consulta Sys. dm_exec_requests para localizar o lote interessante e copiar seu transaction_id da saída.The following example queries sys.dm_exec_requests to find the interesting batch and copy its transaction_id from the output.

SELECT * FROM sys.dm_exec_requests;  
GO

Em seguida, para localizar informações de bloqueio, use o transaction_id copiado com a função de sistema Sys. dm_tran_locks.Then, to find lock information, use the copied transaction_id with the system function sys.dm_tran_locks.

SELECT * FROM sys.dm_tran_locks
WHERE request_owner_type = N'TRANSACTION'
    AND request_owner_id = < copied transaction_id >;
GO  

C.C. Localizando todas as solicitações bloqueadas atualmenteFinding all currently blocked requests

O exemplo a seguir consulta Sys. dm_exec_requests para encontrar informações sobre solicitações bloqueadas.The following example queries sys.dm_exec_requests to find information about blocked requests.

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  

D.D. Ordenando solicitações existentes por CPUOrdering existing requests by CPU

SELECT 
   req.session_id
   , req.start_time
   , cpu_time 'cpu_time_ms'
   , object_name(st.objectid,st.dbid) 'ObjectName' 
   , substring
      (REPLACE
        (REPLACE
          (SUBSTRING
            (ST.text
            , (req.statement_start_offset/2) + 1
            , (
               (CASE 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 cpu_time desc;
GO

Consulte tambémSee Also

Exibições e funções de gerenciamento dinâmico Dynamic Management Views and Functions
Funções e exibições de gerenciamento dinâmico relacionadas à execução Execution Related Dynamic Management Views and Functions
Sys. dm_os_memory_clerks sys.dm_os_memory_clerks
Sys. dm_os_sys_info sys.dm_os_sys_info
Sys. dm_exec_query_memory_grants sys.dm_exec_query_memory_grants
Sys. dm_exec_query_plan sys.dm_exec_query_plan
Sys. dm_exec_sql_text sys.dm_exec_sql_text
SQL Server, objeto SQL statistics SQL Server, SQL Statistics Object
Guia de arquitetura de processamento de consultas Query Processing Architecture Guide
Guia de arquitetura de thread e tarefaThread and Task Architecture Guide