Discussione:
lock sql server
(troppo vecchio per rispondere)
e***@gmail.com
2018-03-15 14:50:51 UTC
Permalink
Buongiorno a tutti, è la prima volta che scrivo su google groups, speriamo qualcuno mi riesca a dare una mano. Vi spiego lo scenario:

SOftware VB.net + SQL 2012 Standard + 100 operatori in logistica

Abbiamo predisposto un monitor in logistica dove ogni 10 secondi viene inviata una query SELECT abbastanza tosta che prende in considerazione una decina di tabelle, al fine di veicolare gli operatori alla chiusura dei pacchi.

La query, a grandi linee, risponde in 2/5 secondi.

Accade però che in questi (max) 5 secondi, alcuni operatori vadano a variare (UPDATE) alcuni dati su una delle tabelle interessate alla query di cui sopra.

Quando questo accade, vien fuori:
msg 1205, level 13, state 51, line 1 transaction was deadlocked on lock resources with another process and has been chosen as the deadlock victim. return the transaction.

in queste update (e anche nella query) non utilizzo transaction.

COme posso migliorare la cosa, al fine di evitare il problema?


Grato a voi
dibball
2018-03-16 00:40:51 UTC
Permalink
<COme posso migliorare la cosa, al fine di evitare il problema?

nella query che deve avere la precedenza imposta una priorità alta con
l'istruzione:

SET DEADLOCK_PRIORITY HIGH


Oppure , usa la clausola :

Se esegui una select con WITH (UPDLOCK),l'altra select aspetterà finchè la
prima è terminata .

Continua a leggere su narkive:
Loading...