sql >> Database >  >> RDS >> Sqlserver

SQL Server-impasses tussen selecteren/bijwerken of meerdere selecties

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.



  1. Java-opgeslagen procedure aanroepen in Java-programma

  2. MYSQL:selecteer een deel van de tekst en knip het uit op basis van puntlocatie

  3. Kan rij in Sqlite in Android niet bijwerken, maar geeft geen enkele fout

  4. Hoe het lopend totaal in SQL te berekenen