Показать сообщение отдельно
Старый 03.03.2018, 15:03   #8  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,158 / 1286 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от greench Посмотреть сообщение
Я к тому что есть ли смысл менять, или просто держать в голове эту ситуацию и в критических местах запросы оборачивать в транзакционные скобки.
Не вижу смысла держать это "в голове". Сегодня держишь, завтра забыл или коллега даже не держал.
Класс InventUpdateOnhand появился еще в DAX4. С тех пор обновление InventSum прямым SQL запросом является основным способом (за исключением ситуации, когда обновляем только одну запись во всей транзакции).
Даже если обновляем только одну запись, то мне сложно представить ситуацию, когда после обновления записи InventSum нашим кодом, тут же запрашиваем её опять из базы данных, надеясь, что получим запись из кэша (ну, если это не обработка конфликта обновления, но даже в этом случае нам нужно явно не значение из кэша, да и транзакция в таком случае открыта).
В общем, смысла кэширования записей такой часто изменяющейся таблицы просто не вижу. Экспериментов не проводил, но подсознательно чувствую, что в таких случаях в недрах DAX часть времени тратится на то, чтобы определить не устарел ли кэш, не нужно ли его сбросить и т.п.

Последний раз редактировалось Raven Melancholic; 03.03.2018 в 15:08.
За это сообщение автора поблагодарили: Logger (3), gl00mie (2).