sql >> Databasteknik >  >> RDS >> Sqlserver

Varför en enda SQL delete-sats orsakar dödläge?

Det vanliga svaret:det beror på! :-)

Mest på hur mycket trafik du har på ditt system och vilken transaktionsisoleringsnivå du använder.

Isoleringsnivån styr hur du får dina data och hur mycket låsning som pågår. Om du aldrig har hört talas om transaktionsisoleringsnivåer använder du förmodligen standarden - READ COMMITTED, vilket inte borde vara så illa. val.

Men om du skulle använda något som SERIALIZABLE av någon anledning kan du inte uppleva dödlägen - utan förseningar. Bordet kan vara låst under en period tills din enda transaktion slutförs. Om alla operationer fungerar i den här ordningen (först radera, sedan infoga och sedan välja), förstår jag inte hur du skulle stöta på några dödlägen.

Läs upp om SQL Transaction Isolation Levels här på www.sql-server- performance.com .



  1. Jämför MYSQL vid anslutningsproblem

  2. Hur anger jag ett lösenord för 'psql' icke-interaktivt?

  3. Entity-Framework -> MySql ger "Timeout för funktionsutvärdering."

  4. Hur man delar en sträng i Oracle