Я встречаю очень редкие, но раздражающие SQL-блокировки на веб-сервере .NET 2.0, работающем поверх MS SQL Server 2005. Раньше мы имели дело с SQL-взаимоблокировками по самому эмпирическому пути - в основном, настраивали запросы до тех пор, пока он работает.
Тем не менее, я нашел этот подход очень неудовлетворительным: трудоемким и ненадежным. Я бы предпочел следовать детерминированным шаблонам запросов, которые гарантировали бы по дизайну, что SQL-тупик не встретится - когда-либо.
Например, при многопоточном программировании на С# необходимо простое правило проектирования, такое как блокировки, следуя их лексикографическому порядку, гарантируя, что никакой взаимоблокировки не произойдет.
Есть ли какие-либо шаблоны кодирования SQL, гарантированные как тупиковые?