Share via


MSSQLSERVER_1205

Detalhes

Nome do produto

SQL Server

Versão do produto

10.50

Número da compilação do produto

10.50.0000.00

ID do evento

1205

Origem do evento

MSSQLSERVER

Componente

SQLEngine

Nome simbólico

LK_VICTIM

Texto da mensagem

A transação (ID do processo %d) entrou em deadlock em %.*ls recursos com outro processo e foi escolhida como a vítima do deadlock. Execute a transação novamente.

Explicação

Os recursos foram acessados em ordem conflitante em transações separadas, causando um deadlock. Por exemplo:

  • A Transação1 atualiza a Table1.Row1, enquanto a Transação2 atualiza a Table2.Row2.

  • A Transação1 tenta atualizar a Table2.Row2 mas é bloqueada porque a Transação2 ainda não foi confirmada.

  • A Transação2 agora tenta atualizar a Table1.Row1 mas é bloqueada porque a Transação1 ainda não foi confirmada.

  • Um deadlock acontece porque a Transação1 está esperando a conclusão da Transação2, mas a Transação2 está esperando a conclusão da Transação1.

O sistema detectará esse deadlock, escolherá uma das transações envolvidas como 'vítima', emitirá essa mensagem e reverterá a transação da vítima. Para obter mais informações sobre deadlocks, consulte Deadlock.

Ação do usuário

Execute a transação novamente. Você também pode revisar o aplicativo para evitar deadlocks. A transação escolhida como vítima pode ser testada novamente e, provavelmente, terá êxito, dependendo de quais operações estiverem sendo executadas simultaneamente.

Para impedir ou evitar a ocorrência de deadlocks, convém fazer com que todas as transações acessem as linhas na mesma ordem (Table1 e, depois, Table2); desse modo, embora possa acontecer um bloqueio, não ocorrerá um deadlock. Para obter mais informações sobre as medidas a serem tomadas, consulte Detectando e encerrando deadlocks.