Оглавление:

Что вызывает тупиковые ситуации в базе данных?
Что вызывает тупиковые ситуации в базе данных?

Видео: Что вызывает тупиковые ситуации в базе данных?

Видео: Что вызывает тупиковые ситуации в базе данных?
Видео: Синхронизация в ОС 2024, Май
Anonim

А тупик происходит, когда две (или более) транзакции блокируют друг друга, удерживая блокировки ресурсов, которые также необходимы каждой транзакции. Например: транзакция 1 удерживает блокировку таблицы A. Большинство людей напишут, что тупиковые ситуации нельзя избежать в многопользовательском база данных.

Что такое тупиковые ситуации в базе данных?

Тупиковые ситуации . В база данных , а тупик это ситуация, в которой две или более транзакции ожидают освобождения друг от друга блокировок. Например, транзакция A может удерживать блокировку некоторых строк в таблице Accounts, и для завершения требуется обновить некоторые строки в таблице Orders.

Также знайте, может ли выбор вызвать тупик? 2 ответа. Тупик происходит, когда один запрос устанавливает блокировку объекта (строк, страниц данных, экстентов, таблиц и т. д.), а другой ресурс пытается получить к нему доступ. Самая маленькая единица в SQL Server - это страницы данных, и SQL блокирует страницу во время работы с ней. Итак, да, возможно, что два Выбрать утверждение жестяная банка Создайте тупик.

Кроме того, как мы можем предотвратить тупик в базе данных?

Советы по предотвращению тупиковых ситуаций

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

Как выйти из тупика?

Умный разработчик должен выполнить следующие шаги, чтобы выйти из тупика:

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

Рекомендуемые: