sql >> Databasteknik >  >> RDS >> Sqlserver

Noll SQL dödläge genom design - några kodningsmönster?

Att skriva dödlägessäker kod är riktigt svårt. Även när du kommer åt borden i samma ordning kan du fortfarande få deadlocks [1]. Jag skrev ett inlägg på min blogg som utvecklar genom några tillvägagångssätt som hjälper dig att undvika och lösa dödlägen.

Om du vill säkerställa att två uttalanden/transaktioner aldrig kommer att låsa sig kan du kanske uppnå det genom att observera vilka lås varje uttalande använder med sp_lock system lagrad procedur. För att göra detta måste du antingen vara väldigt snabb eller använda en öppen transaktion med ett hålllåstips.

Anmärkningar:

  1. Alla SELECT-satser som behöver mer än ett lås samtidigt kan låsa fast mot en intelligent designad transaktion som tar tag i låsen i omvänd ordning.


  1. Oracle Wait-händelser som alla borde känna till

  2. Lös PLS-00323-fel i Oracle

  3. Det aktuella tillståndet för Open Source Backup Management för PostgreSQL

  4. SQL Server - transaktioner återgår vid fel?