Zakleszczenie zerowego SQL według projektu - wszelkie wzorce kodowania?
Spotykam się z bardzo rzadkimi, ale irytującymi zakleszczeniami SQL w aplikacji sieciowej .NET 2.0 działającej na serwerze MS SQL Server 2005. W przeszłości mieliśmy do czynienia z zakleszczeniami SQL w bardzo empiryczny sposób - zasadniczo ulepszając zapytania, dopóki nie zadziała.
Jednak uważam to podejście za bardzo niezadowalające: czasochłonne i zawodne. Zdecydowanie wolałbym podążać za deterministycznymi wzorcami zapytań, które zapewniłybyprzez projekt że nie wystąpi żaden zakleszczenie SQL - nigdy.
Na przykład w wielowątkowym programowaniu w języku C # prosta zasada projektowania, taka jakzamki muszą być podjęte zgodnie z ich porządkiem leksykograficznym zapewnia, że nie będzie impasuzawsze zdarzyć.
Czy są jakieś wzory kodowania SQL gwarantujące, że są one odporne na zakleszczenie?