Salta ai contenuti
Manuale LogoManuale Logo

Locking e concorrenza

La concorrenza nasce quando più utenti o processi lavorano sugli stessi dati nello stesso momento. Il database deve evitare che si creino conflitti o risultati incoerenti.

Un lock impedisce temporaneamente ad altre operazioni incompatibili di usare la stessa risorsa.

In SQL, quel cartello può riguardare una riga, una tabella o altre parti interne del database.

Senza meccanismi di locking, due aggiornamenti contemporanei potrebbero:

  • sovrascriversi a vicenda
  • leggere dati a metà
  • produrre risultati difficili da prevedere

Il locking è una protezione. Il problema nasce quando i lock durano troppo o vengono gestiti male.

Per questo conviene scrivere transazioni brevi e mirate, invece di lasciarle aperte inutilmente.

I lock impediscono che due aggiornamenti incompatibili producano un risultato incoerente.