Съдържание:

Какво причинява блокиране на базата данни?
Какво причинява блокиране на базата данни?

Видео: Какво причинява блокиране на базата данни?

Видео: Какво причинява блокиране на базата данни?
Видео: 🤨 Что там под капотом у SsangYong? Разбираем последний дизель этой марки. 2024, Ноември
Anonim

А безизходица се случва, когато две (или повече) транзакции се блокират взаимно, като задържат заключване на ресурси, от които всяка от транзакциите също се нуждае. Например: Транзакция 1 държи заключване на таблица А. Повечето хора ще напишат това безизходица не могат да бъдат избегнати при многопотребител база данни.

Оттук нататък какво е блокиране в базата данни?

Застой . В база данни , а безизходица е ситуация, в която две или повече транзакции чакат една друга, за да се откажат от заключванията. Например, транзакция А може да задържи заключване на някои редове в таблицата „Сметки“и трябва да актуализира някои редове в таблицата „Поръчки“, за да завърши.

Също така Знайте, може ли избрана опция да причини задънена улица? 2 отговора. Безизходица се случва, когато една заявка придобие заключване на обект (редове, страници с данни, екстент, таблици и т.н.) и друг ресурс се опитва да получи достъп до него. Най-малката единица в SQL Server са страниците с данни и SQL държи заключване на страницата, докато работи върху нея. Така че, да, възможно е две изберете изявление мога създават безизходица.

Освен това, как можем да предотвратим застой в базата данни?

Съвети за избягване на безизходица

  1. Уверете се, че дизайнът на базата данни е правилно нормализиран.
  2. Разработвайте приложения за достъп до сървърни обекти в същия ред всеки път.
  3. Не позволявайте въвеждане на потребители по време на транзакции.
  4. Избягвайте курсорите.
  5. Поддържайте транзакциите възможно най-кратки.

Как да коригирате задънена улица?

Интелигентният разработчик трябва да направи следните стъпки, за да се възстанови от безизходица:

  1. Проверете за грешка номер 1205, когато се изведе изключение.
  2. Поставете приложението на пауза за кратко, за да дадете време на другата заявка да завърши транзакцията си и да освободи придобитите ключалки.
  3. Изпратете отново заявката, която беше върната от SQL Server.

Препоръчано: