Я пишу приложение на С#, которое обращается к базе данных SQL Server 2005. Приложение довольно интенсивно для базы данных, и даже если я попытаюсь оптимизировать весь доступ, настройте правильные индексы и т.д. Я ожидаю, что рано или поздно я получу тупики. Я знаю, почему происходят взаимоблокировки базы данных, но я сомневаюсь, что смогу выпустить программное обеспечение без взаимоблокировок, возникающих в какой-то момент. Приложение использует Entity Framework для доступа к базе данных.
Есть ли хороший шаблон для обработки SQLExceptions (deadlocked) в коде клиента С#, например, для повторного запуска пакета операторов после x миллисекунд?
Прояснить; Я не ищу способ, как избежать блокировок в первую очередь (уровни изоляции, индексы, порядок инструкций и т.д.), А скорее как обрабатывать их, когда они на самом деле происходят.