Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Detaljer
| Attribut | Värde |
|---|---|
| Produktnamn | SQL Server |
| Händelse-ID | 1205 |
| Händelsekälla | MSSQLSERVER |
| Komponent | SQLEngine |
| Symboliskt namn | LK_VICTIM |
| Meddelandetext | Transaktion (process-ID %d) har låsts på %.*ls-resurser med en annan process och har valts som dödlägesoffer. Kör transaktionen igen. |
Förklaring
Resurser används i konfliktordning för separata transaktioner, vilket orsakar ett dödläge. Till exempel:
-
Transaction1uppdateringarTable1.Row1, medan Transaction2 uppdaterasTable2.Row2 -
Transaction1försöker uppdateraTable2.Row2men blockeras eftersomTransaction2ännu inte har checkat in och inte har släppt sina lås - Transaction2 försöker nu uppdatera
Table1.Row1men blockeras eftersomTransaction1inte har checkat in och inte har släppt sina lås - Ett dödläge uppstår eftersom
Transaction1väntar på attTransaction2ska slutföras, menTransaction2väntar på attTransaction1ska slutföras.
Systemet identifierar det här dödläget och väljer en av de transaktioner som ingår som en offer. Det utfärdar sedan det här felmeddelandet och återställer offrets transaktion. Detaljerad information finns i Deadlocks.
Användaråtgärd
Dödlägen är i de flesta fall programrelaterade problem och kräver att programutvecklare gör kodändringar. En metod när du får fel 1205 är att köra frågorna igen. Mer information finns i Deadlock Simulator app for Developers: How to Handle a SQL Deadlock issue in Your App.
Du kan också ändra programmet för att undvika dödlägen. Den transaktion som valdes som offer kan göras om och lyckas sannolikt, beroende på vilka åtgärder som körs samtidigt.
Om du vill förhindra eller undvika att dödlägen inträffar bör du överväga att ha alla transaktioner som har åtkomst till rader i samma ordning (Table1och sedan Table2). På så sätt undviks ett dödläge, även om blockering kan uppstå.
Mer information finns i Hantera dödlägen och Minimera dödlägen.