sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server låser mellan val/uppdatering eller flera val

Detta kan hända för att en select låser två olika index, medan en uppdatering låser samma index i motsatt ordning. Select behöver två index eftersom det första indexet inte täcker alla kolumner som det behöver komma åt; uppdateringen behöver två index eftersom om du uppdaterar ett indexs nyckelkolumn måste du låsa den.

http://blogs.msdn.com/bartd/archive /2006/09/25/770928.aspx har en fantastisk förklaring. Föreslagna korrigeringar inkluderar att lägga till ett index som täcker alla kolumner som valt behöver, byta till ögonblicksbildsisolering eller att uttryckligen tvinga väljaren att ta ett uppdateringslås som den normalt inte skulle behöva.



  1. Konvertera från MySQL datetime till ett annat format med PHP

  2. mysql Det gick inte att läsa automatiskt inkrementvärde från lagringsmotorn

  3. Sök efter värde inom BLOB-kolumnen i MySQL

  4. Oracle drop constraint caskad motsvarande i SQL Server