Ako ti broj ne treba do kraja transakcije onda mozes da odlozis dodelu do sameog inserta, time mozes da iskoristis kratkotrajnu X transakciju da napravis minimalni impact
transakcije moraju da budu serializovane
Code:
declare @num int;
begin transaction serializable
-- nadji max i pri tome zakljucaj celu tabelu, tablockx = tablock holdlock xlock ovo sprecava druge da urade ovu istu instrukciju (ali sprecava i klasican select)
select @num = max(mojid)+1 from tabela with (TABLOCKX)
insert into tabela (mojid, polje, ...) values (@num, ...)
commit
AKo dvoje krenu u isti kod samo jedan ce proci u select @num, drugi ce da blokira dok ti ne zavrsis ceo insert (commit), tek onda ce moci da uradi select i da dobije sledeci broj iza ovog.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić