Сегодня столкнулся с одной ошибкой на русскоязычной версии MS SQL, вначале долго смеялся, потом долго тупил. Выглядела эта ошибка вот так:
Потом попробовал перевести текст ошибки обратно на английский и сразу стало все понятно.
Transaction (Process ID 57) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Вот интересно, кто делает эти переводы и с какой целью? По-моему, даже если не знать английский совсем, то такой перевод не сделает сообщение об ошибке более понятным...
PS. Да, на всякий случай, если кто не знал: жертва дедлока (то есть, процессом, принудительно убиваемым). Вначале проверяется приоритет транзакций (если не установлен специально, с помощью SET DEADLOCK_PRIORITY , то у всех транзакций приоритет одинаковый - NORMAL или 0) и убивается транзакция с меньшим приоритетом. Если приоритет одинаковый, то жертвой выбирается транзакция, которую быстрее откатить (то есть, сделать ROLLBACK). Если же и затраты на ROLLBACK у транзакций, попавших в дедлок одинаковы, то жертва выбирается случайным образом.
Комментариев нет:
Отправить комментарий