Mam dwie procedury składowane, które są zakleszczone, gdy system jest obciążony. Proc A wybiera z tabeli, podczas gdy Proc B wstawia do tej samej tabeli. Wykres blokady pokazuje, że Proc A ma blokadę strony w trybie S, dla której Proc B chce blokady w trybie IX, Proc A czeka jednak na blokadę strony w trybie S dla innej strony, na której Proc B ma już blokadę strony w trybie IX .
Oczywiście można to rozwiązać, upewniając się, że oba zapytania blokują strony w tabeli w tej samej kolejności, ale nie wiem, jak to zrobić.
Moje pytanie brzmi: w jaki sposób SQL Server określa, w jakiej kolejności blokować strony podczas wykonywania INSERT i SELECT oraz jak można zmodyfikować to zachowanie?
źródło