Questão nº 60

Questão de Administração de Banco de Dados · FGV MPAL 2018 (nº 60)

FGV2018Analista do Ministério Público - Administrador de Banco de DadosAdministração de Banco de Dados
Gabarito: Dver comentário ↓

O administrador de uma instalação MS SQL Server detectou a existência de uma transação em atividade no sistema, cujo processamento está muito demorado.

Assinale a opção que apresenta a consulta que fornece os dados adequados para que a transação seja corretamente identificada e o comando kill executado com segurança.

Resposta comentada

Gabarito Alternativa D

Para identificar uma transação demorada no SQL Server e poder finalizá-la com segurança, precisamos de informações sobre a sessão que a está executando. As DMVs (Dynamic Management Views) `sys.dm_exec_sessions` e `sys.dm_exec_connections` são as principais fontes para obter esses dados.

(A) Incorreta: Esta consulta une `sys.dm_exec_sessions` com `sys.dm_clr_tasks`. `sys.dm_clr_tasks` fornece informações sobre tarefas CLR (Common Language Runtime), que são um tipo específico de execução. A maioria das transações demoradas não são CLR, então essa consulta falharia em identificar a maioria das transações e não é adequada para um monitoramento geral.

(B) Incorreta: Esta consulta tenta unir `sys.dm_exec_background_job_queue_stats` com `sys.dm_io_pending_io_requests`. Ambas as DMVs não contêm a coluna `session_id` de forma que possa ser unida diretamente com sessões de usuário para identificar transações. `sys.dm_exec_background_job_queue_stats` é para estatísticas de fila de jobs em segundo plano, e `sys.dm_io_pending_io_requests` é para requisições de I/O pendentes de baixo nível, não sendo úteis para identificar sessões de usuário.

(C) Incorreta: Esta consulta une `sys.dm_exec_sessions` com `sys.dm_exec_background_job_queue_stats`. A DMV `sys.dm_exec_background_job_queue_stats` não possui a coluna `session_id` que se relaciona diretamente com as sessões de usuário em `sys.dm_exec_sessions`, tornando a condição de `JOIN` inválida para o propósito de identificar transações de usuário.

(D) Correta: Esta é a opção correta. A consulta une `sys.dm_exec_sessions` (que contém a maioria das informações desejadas, como `session_id`, `host_name`, `program_name`, `login_name`, `connect_time`, `last_request_end_time`) com `sys.dm_exec_connections` através do `session_id`. `sys.dm_exec_sessions` fornece detalhes sobre as sessões ativas, e `sys.dm_exec_connections` fornece informações sobre as conexões de rede associadas a essas sessões. Juntas, elas oferecem uma visão completa e robusta para identificar uma transação, seu usuário, aplicação e origem, permitindo a execução segura do comando `KILL` se necessário.

(E) Incorreta: Esta consulta tenta unir `sys.dm_audit_actions` com `sys.dm_io_pending_io_requests`. Nenhuma dessas DMVs possui a coluna `session_id` de forma que possa ser unida para identificar sessões de usuário ativas. `sys.dm_audit_actions` é para informações de auditoria, e `sys.dm_io_pending_io_requests` é para I/O pendente, não sendo apropriadas para o monitoramento de transações.

Fonte: FGV MPAL 2018 Analista do Ministério Público - Administrador de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho