Цитата:
- блокировка процесса другими процессами
------------------
блокировки будут не только на inventSum. При "активной работе пользователей" блокировки будут и на inventTrans
Действительно, при "активной работе пользователей" будут изменяться и добавляться провдки (InventTrans). Но так как оборотка, обычно, строится по историческим данным, то вероятность попадания такой записи в выборку очень мала (при стандартном подходе). Если строить от текущего состояния inventSum, то будут выбираться наисвежайшие данные, т.е. 99% попадется заблокированая проводка или остаток (InventSum).
Конечно, можно сделать
NOLOCK, но это увеличит вероятность ошибочных результатов.
Цитата:
- некорректные кол-ва и суммы
---------------
Некорректных не будет, поскольку есть блокировки
Пример:
"Новая оборотка" получила данные из inventSum (PostedQty, PostedValue), потом стала отнимать исторические проводки.. в этот момент некий процесс (накладная) изменяет количество и сумму... Оборотка останавливается, дожидается окончания процесса.. накладная закрылась.. обротка "увидела новую проводку" и вычла ее из старого InventSum. (Проверено на практике)
Конечно, оборотка может попытаться заблокировать, то что считывает, но тогда см.п.1