Ho due stored procedure che si bloccano quando il sistema è sotto carico. Proc A sta selezionando da una tabella mentre Proc B sta inserendo nella stessa tabella. Il grafico di blocco mostra che Proc A ha un blocco di pagina in modalità S per cui Proc B desidera un blocco in modalità IX, Proc A tuttavia è in attesa di un blocco di pagina in modalità S per un'altra pagina in cui Proc B ha già un blocco di pagina in modalità IX .
Chiaramente questo potrebbe essere risolto assicurando che entrambe le query blocchino le pagine nella tabella nello stesso ordine, ma non riesco a capire come farlo.
La mia domanda è: in che modo SQL Server determina in quale ordine bloccare le pagine mentre si eseguono INSERT e SELECT e come è possibile modificare questo comportamento?