Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zakleszczenie z zakresu blokad na indeksie klucza podstawowego

To klasyczny impas, gdy jeden proces (ofiara) odczytuje serializable poziom i inny aktualizuje tę samą tabelę klastrową.

Jesteś zdezorientowany z tym, co jest konwertowane na co.

Pierwszy proces („process5e13b88”) uzyskał RangeS-S blokuje się i czeka na kolejny RangS-S lock (gdzie jest X blokada procesu aktualizacji), nic nie konwertuje.

Drugi „process5e45b88” uzyskał X blokada na jeden klawisz i U na innym klawiszu i chce go przekonwertować na X ale nie może, ponieważ istnieje RangeS-S zablokuj.

Załączam zdjęcie, na którym widać, że jeden proces chce i pozyskuje tylko RangeS-S zamki i inne tylko X zamki.

Gdy zobaczysz RangeS-U lock oznacza to, że istnieje RangeS-S blokuje zakres, ale sam klucz ma U blokada



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 Wydajność w kolumnie geograficznej z wartościami null z indeksem przestrzennym

  2. Jak działa funkcja SOUNDEX() serwera SQL?

  3. String_agg dla SQL Server przed 2017 r.

  4. Podłączanie RStudio do SQL Server

  5. Czy mogę zapisać „Obiekt” w bazie danych SQL Server?