J'ai deux procédures stockées qui sont bloquées lorsque le système est sous charge. Proc A sélectionne dans une table tandis que Proc B est inséré dans la même table. Le graphique de verrouillage montre que Proc A a un verrou de page en mode S pour lequel Proc B veut un verrou de mode IX, Proc A attend cependant un verrouillage de page en mode S pour une page différente pour laquelle Proc B a déjà un verrou de page en mode IX. .
De toute évidence, cela pourrait être réglé en veillant à ce que les deux requêtes verrouillent les pages du tableau dans le même ordre, mais je ne peux pas comprendre comment le faire.
Ma question est la suivante: comment SQL Server détermine-t-il l'ordre de verrouillage des pages lors des insertions et des sélections et comment pouvez-vous modifier ce comportement?