sql >> Databáze >  >> RDS >> Sqlserver

Zablokování z rozsahu uzamkne index primárního klíče

Je to klasické zablokování, když jeden proces (oběť) čte na serializable a další aktualizuje stejnou seskupenou tabulku.

Jste zmateni tím, co je převedeno na co.

První proces ("process5e13b88") získal RangeS-S zámek a čeká na další RangS-S zámek (kde je X zámek procesu aktualizace), nic nekonvertuje.

Druhý "process5e45b88" získal X zámek na jeden klíč a U na jiném klíči a chce jej převést na X ale nemůže, protože existuje RangeS-S zámek.

Přikládám obrázek, kde je vidět, že jeden proces chce a získává pouze RangeS-S zámky a další pouze X zámky.

Když uvidíte RangeS-U lock znamená to, že existuje RangeS-S zámek na dosah, ale samotný klíč má U zámek



  1. SELECT data z jiného schématu v oracle

  2. Pomalý dotaz s levým vnějším spojením a podmínkou null

  3. Jak svázat parametr ISO8601 TSQL DATETIME s PDO?

  4. dostal vícepoložkovou sekvenci