|
![]() |
#1 |
Участник
|
Re: Подробности
Цитата:
Изначально опубликовано Wamr
оборотка, обычно, строится по историческим данным, то вероятность попадания такой записи в выборку очень мала (при стандартном подходе). Если строить от текущего состояния inventSum, то будут выбираться наисвежайшие данные, т.е. 99% попадется заблокированая проводка или остаток (InventSum). Конечно, можно сделать NOLOCK, но это увеличит вероятность ошибочных результатов. Блокировка быстро поднимется с записей до страниц, а со страниц до всей таблицы ![]() Поэтому хоть так, хоть так... вероятность будет одинакова. Цитата:
Изначально опубликовано Wamr
Пример: "Новая оборотка" получила данные из inventSum (PostedQty, PostedValue), потом стала отнимать исторические проводки.. в этот момент некий процесс (накладная) изменяет количество и сумму... Оборотка останавливается, дожидается окончания процесса.. накладная закрылась.. обротка "увидела новую проводку" и вычла ее из старого InventSum. (Проверено на практике) При создании новой проводки, Аксапта начинает транзакцию. При записи проводки, обновляется inventSum. Если inventSum заблокирован, то запись проводки не будет выполнена из-за деадлока. ![]() Если у вас на практике такое было, значит вы прогали и использовали doInsert/doUpdate ![]() В общем, подумайте еще раз. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|