Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 транзакции  [new]
someone_somehow
Guest
Добрый день, господа.
Есть таблица, в которой в одном из полей хранится хэш-сумма.
Как предпочтительнее делать - рассчитывать хэш внутри транзакции, либо перед ней?
Смущает то, что подсчет хэша может быть длительным, и в первом варианте получается более длинная транзакция.

...
begin tran
insert into someTable(inId, Name, inHash)
select 
  v.inId, v.Name, dbo.fnCalcHash(v.Name)
from @v v

...
commit tran




...
update v
 set v.inHash = dbo.fnCalcHash(v.Name)
from @v v 

begin tran
insert into someTable(inId, Name, inHash)
select 
  v.inId, v.Name, v.inHash
from @v v

...
commit tran
24 июн 15, 10:11    [17809842]     Ответить | Цитировать Сообщить модератору
 Re: транзакции  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
someone_somehow, делайте так, чтобы минимизировать ожидание прочих запросов, если они вообще есть.
24 июн 15, 13:05    [17810904]     Ответить | Цитировать Сообщить модератору
 Re: транзакции  [new]
someone_somehow
Guest
Владислав Колосов,
да, спасибо, так и сделаю. Другие запросы есть, и их может быть очень много.
24 июн 15, 13:37    [17811131]     Ответить | Цитировать Сообщить модератору
 Re: транзакции  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
someone_somehow,

Если расчет хеша вне транзакции может привести к нарушению логической целостности данных, то критерий "минимизировать ожидания прочих запросов" придется отбросить.
24 июн 15, 13:53    [17811213]     Ответить | Цитировать Сообщить модератору
 Re: транзакции  [new]
someone_somehow
Guest
invm,

нет, логическая целостность данных нарушена не будет. Спасибо, вопрос можно закрывать.
24 июн 15, 14:06    [17811282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить