MSSQLSERVER_1204MSSQLSERVER_1204

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions)

DetalhesDetails

AtributoAttribute ValorValue
Nome do ProdutoProduct Name SQL ServerSQL Server
ID do eventoEvent ID 12041204
Origem do EventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent SQLEngineSQLEngine
Nome simbólicoSymbolic Name LK_OUTOFLK_OUTOF
Texto da mensagemMessage Text A instância do Mecanismo de Banco de Dados do SQL Server não pode obter um recurso LOCK neste momento.The instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time. Execute a instrução novamente quando houver menos usuários ativos.Rerun your statement when there are fewer active users. Peça ao administrador de banco de dados que verifique a configuração do bloqueio e da memória dessa instância ou as transações de longa execução.Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions.

ExplicaçãoExplanation

O SQL ServerSQL Server não pôde obter um recurso de bloqueio.SQL ServerSQL Server cannot obtain a lock resource. Isso pode ter sido causado por qualquer uma das seguintes razões:This can be caused by either of the following reasons:

  • O SQL ServerSQL Server não pode alocar mais memória do sistema operacional porque está sendo usado por outros processos ou porque o servidor está operando com a opção memória máxima do servidor configurada.SQL ServerSQL Server cannot allocate more memory from the operating system, either because other processes are using it, or because the server is operating with the max server memory option configured.

  • O gerenciador de bloqueio não usará mais que 60 por cento da memória disponível para o SQL ServerSQL Server.The lock manager will not use more than 60 percent of the memory available to SQL ServerSQL Server.

Ação do usuárioUser Action

Se você suspeitar que o SQL Server não pode alocar memória suficiente, tente o seguinte:If you suspect that SQL Server cannot allocate sufficient memory, try the following:

  • Se outros aplicativos além do SQL Server estiverem consumindo recursos, tente interromper esses aplicativos ou considere executá-los em um servidor separado.If applications besides SQL Server are consuming resources, try stopping these applications or consider running them on a separate server. Isso irá liberar memória de outros processos para o SQL Server.This will remove release memory from other processes for SQL Server.

  • Se você tiver configurado a memória máxima do servidor, aumente a definição da memória máxima do servidor.If you have configured max server memory, increase max server memory setting.

Se você suspeitar que o gerenciador de bloqueio usou o máximo de memória disponível, identifique a transação que está mantendo a maioria dos bloqueios e a conclua.If you suspect that the lock manager has used the maximum amount of available memory identify the transaction that is holding the most locks and terminate it. O script seguinte identificará a transação com a maioria de bloqueios:The following script will identify the transaction with the most locks:

SELECT request_session_id, COUNT (*) num_locks  
FROM sys.dm_tran_locks  
GROUP BY request_session_id   
ORDER BY count (*) DESC  

Identifique a ID da sessão mais elevada e encerre-a usando o comando KILL.Take the highest session id, and terminate it using the KILL command.