Ich habe zwei gespeicherte Prozeduren, die blockieren, wenn das System unter Last ist. Proc A wählt aus einer Tabelle aus, während Proc B in dieselbe Tabelle einfügt. Das Sperrdiagramm zeigt, dass Proc A eine S-Modus-Seitensperre hat, für die Proc B eine IX-Modus-Sperre wünscht. Proc A wartet jedoch auf eine S-Modus-Seiten-Sperre für eine andere Seite, auf der Proc B bereits eine IX-Modus-Seiten-Sperre hat .
Dies könnte natürlich dadurch behoben werden, dass sichergestellt wird, dass beide Abfragen die Seiten in der Tabelle in derselben Reihenfolge sperren, aber ich kann nicht herausfinden, wie das geht.
Meine Frage lautet: Wie bestimmt SQL Server, in welcher Reihenfolge Seiten beim Einfügen und Auswählen gesperrt werden sollen, und wie können Sie dieses Verhalten ändern?
quelle