Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Нулева застой на SQL по дизайн - някакви модели на кодиране?

Писането на код, защитен от блокиране, е наистина трудно. Дори когато осъществявате достъп до таблиците в същия ред, все още може да получите блокиране [1]. Написах публикация в блога си, която описва някои подходи, които ще ви помогнат да избегнете и разрешите ситуации на безизходица.

Ако искате да сте сигурни, че две оператори/транзакции никога няма да блокирате, може да успеете да го постигнете, като наблюдавате кои заключвания използва всеки израз с помощта на sp_lock системна съхранена процедура. За да направите това, трябва или да сте много бързи, или да използвате отворена транзакция с намек за задържане.

Бележки:

  1. Всеки оператор SELECT, който се нуждае от повече от едно заключване наведнъж, може да блокира блокиране срещу интелигентно проектирана транзакция, която грабва ключалките в обратен ред.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпълним една и съща заявка във всички бази данни на даден екземпляр?

  2. TSQL валидиране на имейл (без регулярен израз)

  3. Какво представлява ограничението за проверка в SQL Server - SQL Server / TSQL урок, част 82

  4. AT TIME ZONE – нова любима функция в SQL Server 2016

  5. SQL изберете всички, ако параметърът е нулев, иначе връща конкретен елемент