Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

lock sql server

18 views
Skip to first unread message

epsoft...@gmail.com

unread,
Mar 15, 2018, 10:50:52 AM3/15/18
to
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

unread,
Mar 15, 2018, 8:38:58 PM3/15/18
to
<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 .


0 new messages