Ai cumva posibilitatea sa uploadezi si deadlock graph-ul?
Ce indexi exista pe tbl1 (inclusiv clustered-ul) ?
Cite record-uri exista in tbl1, cite StatusCode distincte si cite recorduri au StatusCode = 1 ?
Cel mai important ar fi sa avem deadlock graph-ul.
Asa la o prima impresie, fara informatii suficiente, ar parea ca ce se intimpla este un conflict intre un seek pentru update pe MessageCode (index secundar) si update in cluster (StatusCode) pe de-o parte si scan pe index secundar (MessageCode) cu lookup in cluster (dupa StatusCode). Daca intr-adevar asta e problema ar putea fi rezolvata prin mutarea lui MessageCode ca prima cheie in cluster sau prin adaugarea ca included field al lui StatusCode in indexul secundar (sau chiar punerea lui StatusCode in cheia indexului, pe prima pozitie).
http://rusanu.com