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

Zero impasu SQL z założenia - jakieś wzorce kodowania?

Pisanie kodu odpornego na zakleszczenia jest naprawdę trudne. Nawet jeśli uzyskasz dostęp do stołów w tej samej kolejności, nadal możesz natrafić na impas [1]. Na moim blogu napisałem post, który omawia kilka metod, które pomogą Ci uniknąć sytuacji impasu i rozwiązać je.

Jeśli chcesz mieć pewność, że dwie instrukcje/transakcje nigdy nie ulegną zakleszczeniu, możesz to osiągnąć, obserwując, które blokady zużywa każda instrukcja za pomocą sp_lock systemowa procedura składowana. Aby to zrobić, musisz być bardzo szybki lub użyć otwartej transakcji z podpowiedzią blokady.

Uwagi:

  1. Każda instrukcja SELECT, która wymaga więcej niż jednej blokady naraz, może zablokować inteligentnie zaprojektowaną transakcję, która przechwytuje blokady w odwrotnej kolejności.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak radzić sobie z błędami w zagnieżdżonych transakcjach SQL Server

  2. Typy kursorów programu SQL Server — Statyczny kursor tylko do przodu | Samouczek SQL Server / Samouczek TSQL

  3. Sql Server ciąg do konwersji daty

  4. Jak wygenerować instrukcję dodawania kolumny dla wszystkich tabel w bazie danych w programie SQL Server — część samouczka SQL Server / T-SQL 49

  5. Błąd serwera SQL 113:Brak znaku komentarza końcowego „*/”