sys.dm_exec_input_buffer (Transact-SQL)
Aplica-se a: SQL Server 2014 Banco de Dados SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
Retorna informações sobre instruções enviadas a uma instância do SQL Server.
Sintaxe
sys.dm_exec_input_buffer ( session_id , request_id )
Argumentos
session_id É a ID da sessão que executa o lote a ser pesquisado. session_id é smallint. session_id pode ser obtido nos seguintes objetos de gerenciamento dinâmico:
request_id O request_id de sys.dm_exec_requests. request_id é int.
Tabela retornada
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
event_type | nvarchar(256) | O tipo de evento no buffer de entrada para o spid fornecido. |
parameters | smallint | Quaisquer parâmetros fornecidos para a instrução. |
event_info | nvarchar(max) | O texto da instrução no buffer de entrada para o spid fornecido. |
Permissões
No SQL Server, se o usuário tiver a permissão VIEW SERVER STATE, o usuário verá todas as sessões em execução na instância do SQL Server; caso contrário, o usuário verá apenas a sessão atual.
Importante
Executar essa DMV fora do SQL Server Management Studio no SQL Server sem permissões VIEW SERVER STATE (como em um gatilho, procedimento armazenado ou função) gera um erro de permissão no banco de dados mestre.
No Banco de Dados SQL, se o usuário for o proprietário do banco de dados, ele verá todas as sessões em execução no Banco de Dados SQL; caso contrário, o usuário verá apenas a sessão atual.
Importante
Executar essa DMV fora do SQL Server Management Studio no Banco de Dados SQL do Azure sem permissões de proprietário (como em um gatilho, procedimento armazenado ou função) gera um erro de permissão no banco de dados mestre.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Comentários
Esta função de gerenciamento dinâmico pode ser usada em conjunto com sys.dm_exec_sessions ou sys.dm_exec_requests fazendo CROSS APPLY.
Exemplos
a. Exemplo simples
O exemplo a seguir demonstra a passagem de uma ID de sessão (SPID) e uma ID de solicitação para a função.
SELECT * FROM sys.dm_exec_input_buffer (52, 0);
GO
B. Usando a aplicação cruzada para informações adicionais
O exemplo a seguir lista o buffer de entrada para sessões de usuário.
SELECT es.session_id, ib.event_info
FROM sys.dm_exec_sessions AS es
CROSS APPLY sys.dm_exec_input_buffer(es.session_id, NULL) AS ib
WHERE es.is_user_process = 1;
GO