Blocking transactions, forts...
http://www.eksperten.dk/spm/902601#reply_7548571Kunden har igen haft en FBTS (F...... Blocking Transaktion Situation) som jeg kan isolere til en lille funktion
returns [int] as
begin
declare @ref [int]
select @ref = ref
from [bruger]
where (spid = @@spid)
return(coalesce(@ref,0))
end
Den bliver kaldt som default værdi i en del tabeller (f.eks. ved feltet opretttet_bruger_ref constraint ... default(GetBrugerRef()). Problemet er altså at det er en funktion der kaldes hyppigt.
Hvad gør jeg?
Kan jeg lave funktionen superhurtig? Cache den? Kan den blive så intelligent at den prøver igen (Mutex: sp_getapplock/sp_releaselock)?
P.s. Coalesce skal erstattes af IsNull