TMS - Lentidão de sistema - Lock na base
Dúvida
Como verificar comandos SQL que constam bloqueados no banco de dados?
Solução
Para verificar os comandos SQL que constam bloqueados no banco de dados, siga os passos a seguir:
1. Acesse o módulo SQL;
1.1. Faça login com as credenciais de acesso:
2. Insira o script SQL a seguir;
2.1. Clique 'F5':
SELECT SP.SPID ID, DB_NAME(DBID) DBNAME, SP.BLOCKED ID_BLOQ, SP.OPEN_TRAN TRAN_ABER, (SELECT CAST(TEXT AS VARCHAR(4000)) FROM SYS.DM_EXEC_SQL_TEXT(SP.SQL_HANDLE)) COMMANDO , SP.WAITTIME/1000 [TEMPO SEG.] , (SELECT CAST([TEXT] AS VARCHAR(8000)) FROM ::FN_GET_SQL((SELECT TOP 1 [SQL_HANDLE] FROM SYS.SYSPROCESSES WHERE SPID = SP.BLOCKED))) SQL_BLOQUEIO , SP.STATUS [STATUS] , SP.HOSTNAME MAQUINA , SP.[PROGRAM_NAME] , SP.LOGINAME FROM SYS.SYSPROCESSES SP WHERE STATUS <> 'SLEEPING' AND SP.SPID > 50 ORDER BY 6 DESC, PHYSICAL_IO DESC;
Obs: O Script retorna todos os processos que estão sendo executados no banco de dados no momento
Atenção! Antes de realizar qualquer alteração, analise o impacto que poderá ter em outros lançamentos/processos do sistema.