Dit kan gebeuren omdat een select een lock-out op twee verschillende indexen opheft, terwijl een update een lock-out op dezelfde indexen in de tegenovergestelde volgorde uitvoert. De select heeft twee indexen nodig omdat de eerste index niet alle kolommen dekt waartoe hij toegang moet hebben; de update heeft twee indexen nodig, want als je de sleutelkolom van een index bijwerkt, moet je er een slot op nemen.
http://blogs.msdn.com/bartd/archive /2006/09/25/770928.aspx heeft een fantastische uitleg. Voorgestelde oplossingen zijn onder meer het toevoegen van een index die alle kolommen dekt die de select nodig heeft, het overschakelen naar snapshot-isolatie of het expliciet dwingen van de select om een updatevergrendeling te pakken die het normaal niet nodig zou hebben.